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

webmancrontab定時任務(wù)堆積問題

timber

問題描述

我舉例個場景,我起了一個5秒一次請求的定時任務(wù),任務(wù)中5秒后業(yè)務(wù)代碼還沒執(zhí)行完,這時候會不會出現(xiàn)沒有執(zhí)行完,就啟動下次任務(wù),這樣子久而久之造成堆積呢?

為此你搜索到了哪些方案及不適用的原因

我自己的見解就是,在一次任務(wù)中,使用請求庫中的并發(fā)請求來調(diào)用接口通知

3226 3 4
3個回答

walkor 打賞

每個進程都是順序處理的,不會并發(fā)執(zhí)行任務(wù)

  • timber 2023-08-08

    好的,感謝你的回答,也就是當前定時任務(wù)未執(zhí)行完之前,這個任務(wù)是不會繼續(xù)執(zhí)行了?

  • walkor 2023-08-08

MarkGo

我是類似場景,但用的是timer,如:

public function onworkerstart(){
  $this->task();
}

private function task(){
    curl_init();
    //.......
    curl_exec();
    Timer::add(5,function(){
        $this->task();
    },null,false);
}
  • timber 2023-08-08

    因為我這邊遠程調(diào)用有延遲,還要處理一堆通知業(yè)務(wù),可能預(yù)設(shè)的時間內(nèi)沒辦法完成,所以擔(dān)心在未完成之前,當前的任務(wù)又開始執(zhí)行了

  • MarkGo 2023-08-10

    我之前也是怕這樣,所以我是執(zhí)行完然後設(shè)置個一次性的執(zhí)行器,固定執(zhí)行完後x秒內(nèi)再次執(zhí)行

  • hzqghost 2024-07-04

    我不管是什么樣的定時系統(tǒng)都會加鎖

    文件鎖
    $lockFile = 'timer_every_day.lock';
    if (file_exists($lockFile)) {
    return; //exit;
    }
    file_put_contents($lockFile, getmypid());
    try {
    $argv = [__FILE__, 'everyDay/exec'];
    include(DIR . "index.php");
    } finally {
    unlink($lockFile);
    }

    網(wǎng)址請求鎖, curlGet, curlPut 為封裝的處理 curl 的請求參數(shù)與返回結(jié)果
    $lockUrl = 'https://xxxxx';
    if (curlGet($lockUrl )->isLock == true) {
    return; //exit;
    }
    curlPut($lockUrl, ['lock' => true] );
    try {
    curlGet('http://xxxx1');
    curlGet('http://xxxx2');
    curlGet('http://xxxx3');
    curlGet('http://xxxx4');
    } finally {
    curlPut($lockUrl, ['lock' => false] );
    }

釋永戰(zhàn)

????問的很好的問題

  • 暫無評論
年代過于久遠,無法發(fā)表回答
??