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 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
最佳答案

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

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

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

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

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

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

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

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

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

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

file@

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

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

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

看看是否是这个情况

2年前 评论

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