首页 > 解决方案 > 确保 laravel 计划的 cron 作业已在生产中运行

问题描述

我有一个计划的 cron 作业,它在 laravel forge 生产服务器中运行laravel 的任务调度程序。此 cron 作业每分钟运行一次,以确保运行已在调度程序中安排的任何作业。任务调度程序有多个作业,它们都在不同的时间执行。

本质上,我想要的是一种在生产中监视 cron 作业的方法,以便如果它失败或未运行,我会通过警报(例如 slack、sms)通知我。如果没有任何警报,如果不手动检查,我将无法知道 cron 作业是否没有运行。实现这一目标的最佳方法是什么?谢谢。

标签: laravelcronlaravel-5.8

解决方案


如果我猜对了,您可以在 cron 作业运行后利用Pinging URLs来 ping 特定的 url。如下所示:

$schedule->command('emails:send')
         ->daily()
         ->thenPing($url);

现在您可以构建您的$url端点daily


推荐阅读