国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

多個(gè)進(jìn)程開啟定時(shí)任務(wù), 執(zhí)行時(shí)間還是同時(shí),可否時(shí)間不變, 不同時(shí)執(zhí)行

xiaoming

問題描述

public static function onWorkerStart($worker)
{

        Timer::add(5, function () {
            if(empty(self::$heartbeat_queue)){
                return;
            }
            StoreWs::where("id", 'in', self::$heartbeat_queue)->update(['heartbeat_time' => time()]);
            self::$heartbeat_queue = [];
        });
}
804 3 0
3個(gè)回答

xiaoming

可這樣子嵌套 ?

  Timer::add($worker->id+1, function () {
            Timer::add(5, function () {
                if(empty(self::$heartbeat_queue)){
                    return;
                }
                StoreWs::where("id", 'in', self::$heartbeat_queue)->update(['heartbeat_time' => time()]);
                self::$heartbeat_queue = [];
            });
        },[],false);
  • qqxxr 2024-04-16

    這樣不用嵌套了吧,Timer::add(5+$worker->id, function () {}

  • xiaoming 2024-04-17

    周期就不是都5秒了

釋永戰(zhàn)

Timer::add前面加一句sleep($worker->id);

  • xiaoming 2024-04-17

    這樣子不太好

  • 釋永戰(zhàn) 2024-04-17

    是哪里不太好?我就是用的這種方案,用了十幾年了目前沒有任何問題····

ichynul

估計(jì)你是想任務(wù)在不同進(jìn)程不同時(shí)執(zhí)行吧,我做過類似的,把任務(wù)按順序分配到不同的進(jìn)程。

$threadTotal = $worker->count; //總進(jìn)程數(shù)量 n
$threadId = $worker->id; //當(dāng)前進(jìn)程編號 1 ~ (n-1)
$i = -1;
foreach ($taskList as $li) {
     $i += 1;
     if ($i % $threadTotal != $threadId) {
          continue;
     }
     $this->curl($li['url']);
}
  • xiaoming 2024-04-17

    是的周期都是5秒定時(shí) 但是不同時(shí)刻 執(zhí)行

  • ichynul 2024-04-17
    $queueIds = [];
    foreach (self::$heartbeat_queue as $i => $q) {
         if ($i % $threadTotal != $threadId) {
              continue;
         }
        $queueIds[]= $q;
        unset(self::$heartbeat_queue[$i]);
    }
    
    StoreWs::where("id", 'in', $queueIds)->update(['heartbeat_time' => time()]);

    同時(shí)執(zhí)行,但不同的進(jìn)程不會對同一個(gè)queueId重復(fù)執(zhí)行。

年代過于久遠(yuǎn),無法發(fā)表回答
??