首页 > 解决方案 > Laravel 调度命令没有创建互斥锁文件和没有重叠不起作用

问题描述

在app/console/kernel.php中配置的 Laravel Artisan 调度程序不会创建 Mutex 文件,因此没有重叠永远不会工作。但是我永远不会出错。这些文件应该在存储/框架/对吗?

由于 Artisan Commands 的重叠,我的数据被重复了。

用 kernel.php 编写的示例命令:

$schedule->command('clear:logFiles')->everyMinute()->withoutOverlapping();
$schedule->command('validate:sslCommerzTransactions')->withoutOverlapping()->everyTenMinutes();
$schedule->command('send:queuedTelegramNotifications')->withoutOverlapping()->everyMinute();
$schedule->command('send:queuedRewardNotifications')->withoutOverlapping()->everyMinute();

我还做了一个自定义函数来测试,但我没有看到互斥文件:

$schedule->call(function () {
            sleep(900);
        })->name("test")->withoutOverlapping(2);

我可以做些什么来确认我的互斥锁文件是否真的生成/工作?

我已经配置了缓存表并将 cache_driver 设置为数据库,现在我看不到那里的条目。虽然我的 Artisan 命令现在正在运行。奇怪的?

我的用例:我想防止重叠。我的意思是,如果一个命令正在运行,Laravel 应该一直运行到上一次执行完成,然后再配置。

请帮忙。需要什么信息吗?我会提供。

我的 Laravel 版本是 5.8 和 Cache Driver: file, db 都经过测试

标签: laravellaravel-5laravel-artisanlaravel-scheduler

解决方案


推荐阅读