webmancrontab定时任务堆积问题

timber

问题描述

我举例个场景,我起了一个5秒一次请求的定时任务,任务中5秒后业务代码还没执行完,这时候会不会出现没有执行完,就启动下次任务,这样子久而久之造成堆积呢?

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

我自己的见解就是,在一次任务中,使用请求库中的并发请求来调用接口通知

1136 2 1
2个回答

walkor

每个进程都是顺序处理的,不会并发执行任务

  • timber 2023-08-08

    好的,感谢你的回答,也就是当前定时任务未执行完之前,这个任务是不会继续执行了?

  • 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

    因为我这边远程调用有延迟,还要处理一堆通知业务,可能预设的时间内没办法完成,所以担心在未完成之前,当前的任务又开始执行了

  • MarkGo 2023-08-10

    我之前也是怕這樣,所以我是執行完然後設置個一次性的執行器,固定執行完後x秒內再次執行

🔝