TimeRsync.php 868 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Administrator
  5. * Date: 2019/5/22
  6. * Time: 15:20
  7. */
  8. namespace app\logic;
  9. use app\pplus\Instance;
  10. use app\lib\GlobConfigs;
  11. use app\logic\Mypack;
  12. class TimeRsync
  13. {
  14. use Instance;
  15. public function DoTimePublic($serv, $worker_id, $redis)
  16. {
  17. $key = TIME_RSYNC_KEY;
  18. $val = intval($redis->get($key));
  19. //有其它进程正在操作,不用重复
  20. if (!empty($val)) { return; }
  21. $selfval = $worker_id + 1;
  22. $redis->SETEX($key, 55 , $selfval);
  23. $newvel = $redis->get($key);
  24. if ($selfval != intval($newvel)){ return; }
  25. $time = time();
  26. $data = json_encode(['cmd'=>'test','act'=>'timeRsync','data'=>['t'=>$time,'s'=>date('Y-m-d H:i:s',$time)]]);
  27. $serv->task(Mypack::getInstance()->makeData($data));
  28. return ;
  29. }
  30. }