【发布时间】:2019-05-08 17:48:51
【问题描述】:
我在运行 laravel 调度程序以在队列中发送邮件时遇到问题
设置如下:Laravel 5.7 我已经配置了调度程序(App/Console/Kernel.php),如下所述
protected function schedule(Schedule $schedule)
{
$schedule->command('queue:work --tries=3')->everyFiveMinutes()->withoutOverlapping();
}
数据库是按照 laravel 文档设置的。在我的 UI 中单击链接后,我就可以在 db 中看到该条目。
.env QUEUE_CONNECTION=database 与 Config/queue.php 中的设置相同 (如果我将数据库更改为同步,它会完美运行)
我在服务器中的 cron 工作如下(我只是尝试记录 cron)
/usr/local/bin/php /home/XXX/YYY/artisan schedule:run 1>> /home/XXX/public_html/junk/cron_log.php 2>&1
我可以看到 cron 日志每五分钟更新一次,但是
“没有准备好运行的预定命令”
昨晚使用完全相同的代码和设置(睡前)。我已经测试了超过 40 次电子邮件发送尝试和数据库条目被删除。我只尝试使用everyFiveMinues() 保存调度程序,但现在无法正常工作。
我可以理解邮件到达缓慢但为什么数据库条目没有像昨晚那样被删除?
【问题讨论】:
-
我不认为你需要一个计划任务和一个队列监听器,你可以只使用一个或另一个。您在设置计划任务之前说它正在工作,那么为什么不单独使用队列呢?
标签: php laravel cron hosting shared