Laravel任务调度时间频率不受控制

1. 运行环境

1). 当前使用的 Laravel 版本?

5.7

2). 当前使用的 php/php-fpm 版本?

PHP 版本:7.4

3). 当前系统

CentOS 7

4). 业务环境

生产环境

2. 问题描述?

任务调度计划斌率不受控制?

   $schedule->call(WithDrawRecordService::conversionWithDraw())->dailyAt('01:00');

3. 您期望得到的结果?

正常时间执行调度程序

4. 您实际得到的结果?

如上 我的意愿是让塔在每天的01:00去处理这个事情 但现在的日志并非如此

Laravel

Laravel

实际他每分钟都会来 而且还不止处理一次

是我的写法有问题吗?

CollinAi
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

call 方法应该接收一个闭包,你写法有误,所以每分钟都会执行
改成闭包

$schedule->call(function(){
            WithDrawRecordService::conversionWithDraw();
        })->dailyAt('01:00');

另外执行多次的问题,观察一下进程,我怀疑可能有多个 schedule 进程

1年前 评论
Efrain (楼主) 1年前
Efrain (楼主) 1年前
讨论数量: 8

call 方法应该接收一个闭包,你写法有误,所以每分钟都会执行
改成闭包

$schedule->call(function(){
            WithDrawRecordService::conversionWithDraw();
        })->dailyAt('01:00');

另外执行多次的问题,观察一下进程,我怀疑可能有多个 schedule 进程

1年前 评论
Efrain (楼主) 1年前
Efrain (楼主) 1年前

是不是在其他地方调用了这个方法?

1年前 评论
Efrain (楼主) 1年前

file@

1年前 评论
haodudecao 1年前
$schedule->call(function () {
           xxxxxx
})->dailyAt('00:01')->name('dayTask')->withoutOverlapping();  

任务调度《Laravel 9 中文文档》

默认情况下,即使之前的任务实例还在执行,调度内的任务也会执行。为避免这种情况的发生,你可以使用 withoutOverlapping 方法:

看看是否是这个情况

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!