[英]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.