在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 都经过测试