webman的crontab运行次数问题

kltd

webman定时任务我设置每秒运行一次,到线上感觉是每秒运行了几次呢,是启动的多个进程同时调度运行了吗。现在还没排除是一秒内上一次没执行完,下一秒又运行了。但是我感觉不像是这个原因,因为我本地没出现这个问题。服务器应该不至于运行那么慢。

是使用这个方式请求一个链接,上线后每一次运行大概有10次左右的请求。并且都是在同一时间,所以我怀疑是定时任务被多个进程分别执行了。

use Workerman\Http\Client;
$http = new Client();
$http->get($url);

我看了下有说获取workerid来限制只有第0个才运行,尝试了几个写法都没对。或者是需要使用redis来限制只运行一次吗。

162 3 0
3个回答

timeless-zyg

发下定时任务代码和config/process.php文件内容

  • kltd 2天前

    任务是这么加的 原始配置都没动过
    'CheckData' => [
    'handler' => app\process\CheckData::class,
    'singleton' => true,
    ],

    定时任务的运行规则是
    new Crontab('/1 ', function(){
    $this->checkData();
    });

  • kltd 2天前

    定时的规则的*会被过滤用星代替星号 x/1 x x x x x

故人重来

单独开进程执行定时任务,但是workerman得定时任务执行过程中是阻塞状态。

  • 暂无评论
rbb

哥们,你在定时执行里面打印一下时间,看下是否真的是你说的那样

  • 暂无评论
×
🔝