如何撤消或停止 php 工匠 schedule:run



这是我在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((

您可以创建一个工匠命令,例如

  1. custom_schedule:进程{type},它将类型,即反向/撤消/停止/终止存储在存储中的计划文件中
  2. custom_schedule:run 将访问存储中的调度文件以获取类型,然后相应地运行 Artisan::command('schedule:run'(

然后将 crontab 更改为 * * * * * php/home/test/website/artisan custom_schedule:run>>/dev/null 2>&1

kill: (PID( - 没有这样的过程

我也停止了我的流浪箱,但似乎没有任何 影响。

您是否检查过主机内部?因为这看起来就像你一直在主机中运行 artisan 和 crontab 的两者或其中之一,而不是在流浪盒子内。

最新更新