繁体   English   中英

使用laravel Scheduler在共享主机上执行Cron作业不起作用

[英]Cron jobs on shared hosting using laravel scheduler not working

我在运行laravel Scheduler以在队列中发送邮件时遇到问题

设置如下:Laravel 5.7我已经配置了调度程序(App / Console / Kernel.php),如下所述

protected function schedule(Schedule $schedule)
{       
  $schedule->command('queue:work --tries=3')->everyFiveMinutes()->withoutOverlapping();
}

该数据库是根据laravel文档设置的。 单击UI中的链接后,便可以在数据库中看到该条目。

.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()保存调度程序,但现在不起作用。

我可以理解邮件到达缓慢的原因,但是为什么没有像昨晚那样删除数据库条目?

这对于使用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

我猜方法noOverlapping()在cron执行中有问题。 我没有更改代码中的任何内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM