小編給大家分享一下Laravel中執(zhí)行定時任務(wù)是如何實現(xiàn),希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
在永吉等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站制作、網(wǎng)站建設(shè) 網(wǎng)站設(shè)計制作專業(yè)公司,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站建設(shè),成都營銷網(wǎng)站建設(shè),成都外貿(mào)網(wǎng)站建設(shè),永吉網(wǎng)站建設(shè)費用合理。
Laravel 中執(zhí)行定時任務(wù)是通過 cron 來實現(xiàn),官網(wǎng)文檔中就是簡單一句 + 一行Cron 代碼
* * * * * php /path-to-your-project/artisan schedule:run >> /dev/null 2>&1
但是在實際使用的過程中,如果對 Linux 和 Cron 不熟悉,會遇到一些小坑,我們整理并記錄了分享出來希望能幫助到大家。
坑1:環(huán)境變量
當(dāng)Cron無法生效時,可能是Cron執(zhí)行環(huán)境變量不正確引起的。
執(zhí)行命令
env > /tmp/env.output
打開/tmp/env.output文件,將PATH字段整行添加至corntab文件頂部,corntab文件在/var/spool/cron目錄下
crontab 文件示例
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/opt/MySQL/bin:/opt/php7/bin:/opt/memcached/bin:/root/bin * * * * * php /path-to-your-project/artisan schedule:run >> /dev/null 2>&1
坑2:Cron 執(zhí)行用戶導(dǎo)致 Laravel log 不可寫
通過 crontab -e 命令創(chuàng)建的 Cron 是屬于 root 用戶,如果定時任務(wù)在實行時主動寫入日志或者遇到異常未捕捉,會創(chuàng)建 root 權(quán)限的日志文件,最終會導(dǎo)致 php-fpm 的 www 賬號無法寫入。
因此需要在創(chuàng)建 cron 的時候指定用戶
crontab -u www -e
個人管理的系統(tǒng)中 php-fpm 執(zhí)行用戶都是 www,請根據(jù)自己的實際情況調(diào)整代碼。
坑3:cron 內(nèi)容最后一行未回車
解決上述兩點問題后,如果仍然發(fā)現(xiàn) cron 不執(zhí)行,請確認(rèn)
* * * * * php /path-to-your-project/artisan schedule:run >> /dev/null 2>&1
代碼最后有進(jìn)行回車換行。
看完了這篇文章,相信你對“Laravel中執(zhí)行定時任務(wù)是如何實現(xiàn)”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
網(wǎng)頁標(biāo)題:?Laravel中執(zhí)行定時任務(wù)是如何實現(xiàn)
網(wǎng)頁地址:http://www.rwnh.cn/article4/jsdjoe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站、網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈、品牌網(wǎng)站建設(shè)、App設(shè)計、小程序開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)