如何撤消或停止PHP Artisan Schedule:运行

时间:2019-08-30 03:42:31

标签: php laravel artisan

这是在我的Laravel 5.3开发环境中

我正在测试预定的电子邮件并运行:

php artisan schedule:run

这工作正常,正在按预期方式发送电子邮件。

但是我实际上希望在crontab文件中使用它:

 * * * * * php /home/test/website/artisan schedule:run >> /dev/null 2>&1

由于我在crontab文件中添加了这一行,所以我收到了两封电子邮件。我删除了该行,所以现在只收到一封电子邮件。

但是现在我想撤消/撤消/停止/杀死php artisan schedule:run,以便我可以从crontab文件控制日程表。

我看到了这篇文章:Stop a Laravel scheduled command once stared?

但是当我收到消息时,对于我来说,可接受的答案(ps -fe | grep artisan并杀死PID)对我不起作用

kill: (PID) - No such process

每次我跑步

ps -fe | grep artisan 

它似乎具有不同的PID-不确定我在这做错了什么。

我也停止了我的无聊的盒子,但这似乎没有任何作用。

任何建议都会很棒!


更新:以防万一,将来我碰巧遇到同样的问题,又在这个SO帖子上绊倒了-我无法解决此问题,并决定不再值得花更多的时间来解决它-现在就住。通过从crontab中删除该行,我现在只收到一封电子邮件,所以一切都很好。

3 个答案:

答案 0 :(得分:2)

您是否在代码中尝试过此操作?没有Overlapping()  为了防止任何重叠。

  

$ schedule-> command('emails:send')-> withoutOverlapping()

答案 1 :(得分:1)

  

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

     

我也停止了我无业游民的盒子,但这似乎没有任何作用   效果。

您是否检查过主机?因为这似乎是您在主机内部而不是在无所事事的框中运行artisan和crontab两者或其中之一。

答案 2 :(得分:1)

您可以创建

之类的工匠命令
  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