这是我在Laravel 5.3的开发环境中
我正在测试预定的电子邮件并运行:
php artisan schedule:run
这工作正常,并按预期发送电子邮件。
但是我实际上希望在 crontab 文件中使用它:
* * * * * php /home/test/website/artisan schedule:run >> /dev/null 2>&1
由于我在 crontab 文件中添加了该行,因此我收到了两封电子邮件。我删除了该行,所以现在只收到一封电子邮件。
但是现在我想撤消/撤消/停止/杀死那个 php 工匠计划:运行,以便我可以从 crontab 文件控制计划。
我看到这篇文章: 一旦启动就停止 Laravel计划命令?
但是接受的答案( ps -fe | grep 工匠和杀死 PID (因为我收到消息时对我不起作用:
kill: (PID) - No such process
每次我跑步
ps -fe | grep artisan
它似乎有不同的 PID - 不确定我在这方面做错了什么。
我也停止了我的流浪箱,但这似乎没有任何效果。
任何建议都会很棒!
UPDATE:以防万一将来我碰巧遇到同样的问题并再次偶然发现这个SO帖子 - 我无法解决这个问题,并决定不再值得再投入更多时间来解决它 - 暂时忍受它。通过从crontab中删除该行,我只收到一封电子邮件,所以现在一切都很好。
你在代码中试过这个吗? withoutOverlapping(( 为了防止任何重叠。
$schedule->command('emails:send'(->withoutOverlapping((
您可以创建一个工匠命令,例如
- custom_schedule:进程{type},它将类型,即反向/撤消/停止/终止存储在存储中的计划文件中
- custom_schedule:run 将访问存储中的调度文件以获取类型,然后相应地运行 Artisan::command('schedule:run'(
然后将 crontab 更改为 * * * * * php/home/test/website/artisan custom_schedule:run>>/dev/null 2>&1
kill: (PID( - 没有这样的过程
我也停止了我的流浪箱,但似乎没有任何 影响。
您是否检查过主机内部?因为这看起来就像你一直在主机中运行 artisan 和 crontab 的两者或其中之一,而不是在流浪盒子内。