任务调度 App\Console\Kernel::schedule 一分钟内触发多次,还会跳过一分钟不执行

1. 运行环境

laravel sail 8.2

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

laravel 10.x
//: <> (使用 php artisan --version 命令查看)

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

PHP 版本:8.2

php-fpm 版本:8.2

3). 当前系统

ubuntu 22.04
//: <> (期待数值 Windows 10 / Ubuntu 20.4 / CentOS 8 )

4). 业务环境

5). 相关软件版本

2. 问题描述?

任务调度 App\Console\Kernel::schedule 一分钟内触发多次

代码截图
任务调度 App\Console\Kernel::schedule 一分钟内触发多次

运行截图

任务调度 App\Console\Kernel::schedule 一分钟内触发多次

日志截图
在 2024-07-10 14:31:01 时间点的时候,并未继续执行 app:sync-data-log 任务
任务调度 App\Console\Kernel::schedule 一分钟内触发多次

3. 您期望得到的结果?

期望每分钟执行一次, 或者说,为什么会一分钟执行多次
//: <> (能截图就截图。)

4. 您实际得到的结果?

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 22

你设置的不就是每10s执行一次吗

1个月前 评论
cccdz (作者) 1个月前
cccdz (作者) 1个月前
狒狒达人 (楼主) 1个月前
狒狒达人 (楼主) 1个月前
狒狒达人 (楼主) 1个月前
cccdz (作者) 1个月前
狒狒达人 (楼主) 1个月前
cccdz (作者) 1个月前
狒狒达人 (楼主) 1个月前
cccdz (作者) 1个月前
狒狒达人 (楼主) 1个月前
cccdz (作者) 1个月前

而且scheduler本身就带锁的配置,你还自己写

1个月前 评论
狒狒达人 (楼主) 1个月前

首先,想要的是每分钟执行哪个命令?
然后就是 app:sync-data-log 问题,你设置的是在后台每10秒执行一次,这没有问题,但是你在schedule里执行的,就会有问题。
有没有想过,每60秒一过后,app:sync-data-log 都会自动添加一次,然后多个 60 秒后,存在的 app:sync-data-log 就有多个了
越到后面那不是 app:sync-data-log 命令越多

1个月前 评论
狒狒达人 (楼主) 1个月前
deatil (作者) 1个月前
cccdz 1个月前

秒级定时任务

use \Spatie\ShortSchedule\ShortSchedule;
protected function shortSchedule(ShortSchedule $shortSchedule)
{
    // 此命令每秒钟会运行一次
    $shortSchedule->command('artisan-command')->everySecond();

    // 此命令每30秒会运行一次
    $shortSchedule->command('another-artisan-command')->everySeconds(30);

    // 此命令每0.5秒会运行一次
    $shortSchedule->command('another-artisan-command')->everySeconds(0.5);
}
1个月前 评论

$schedule->call(function () {

})->everyMinute()->name('xxxx')->withoutOverlapping();

1个月前 评论

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