我遇到了运行laravel Scheduler在队列中发送邮件的问题
设置如下:Laravel 5.7 我已经配置了如下所述的调度程序(App / Console / Kernel.php)
protected function schedule(Schedule $schedule)
{
$schedule->command('queue:work --tries=3')->everyFiveMinutes()->withoutOverlapping();
}
数据库是根据laravel文档设置的。在用户界面中单击链接后,就可以在数据库中看到该条目。
.env QUEUE_CONNECTION =数据库和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个emais发送尝试,并且数据库条目被删除。我只尝试用everyFiveMinues()保存调度程序,但现在不起作用。
我可以理解邮件到达缓慢的状态,但是为什么没有像昨晚那样删除数据库条目?
答案 0 :(得分:0)
这对于使用Laravel 5.7(共享托管Godaddy)的其他人可能有用。
上述调度电子邮件作业的问题未执行(我的意思是cron作业正在运行,但数据库条目未清除。问题似乎与
有关->withoutOverlapping();
删除此方法后,现在可以正确看到cron_log条目,并且还收到了邮件。我的cron_log条目如下所示
Running scheduled command: '/opt/alt/php71/usr/bin/php' 'artisan' queue:work --tries=3 > '/dev/null' 2>&1
我猜想不带Overlapping()的方法在cron执行中有问题。我没有更改代码中的任何内容。