簡體   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