最近在做一個項目,商城秒殺,用戶搶到訂單但是沒有支付,超時後訂單關閉,回滾庫存。寫了定時任務,手動執行沒問題,定時器查看了也再跑,可是就是沒有執行寫好的任務。百度了很多 ,不是說權限問題,就是環境變量問題,最後發現都不是。然後覺得這麼找問題很亂,就一步一步排查。
首先看,crontab任務有沒有運行,相關命令如下:
service crond status
如果顯示running,則正在運行,否則按如下命令操作:
crontab服務啓動與關閉。
/etc/init.d/crond stop --關閉服務
/etc/init.d/crond start --啓動服務
/etc/init.d/crond restart --重啓服務
/etc/init.d/crond reload --重新載入配置
其他相關命令:
crontab
–e 編輯
crontab -l 顯示所有任務
crontab -r 刪除任務
tail -f /var/log/cron 查看正在執行的定時任務
點擊 i 鍵,進入編輯狀態
輸入要執行的命令:如上 * * * * * /www/......./filename.sh;
按ESC鍵,然後輸入:wq保存退即可
注意:執行的腳本文件一定要給777權限(非常重要)
主要還是參考了這篇文章:https://www.cnblogs.com/seizemiss/p/9467558.html