您好,登錄后才能下訂單哦!
背景:
在實際工作業(yè)務(wù)中,經(jīng)常要用到異步任務(wù)的方式來進(jìn)行相關(guān)(耗時)任務(wù)的處理,這時可能需要采取定時任務(wù)的方式來進(jìn)行。linux自帶的crontab定時器工具能很好的解決這個問題。
每次項目上線的時候,如有新的異步任務(wù)腳本就必定要×××器管理員進(jìn)行crontab配置修改。因為需要動服務(wù)器配置,溝通協(xié)調(diào)確認(rèn)的過程都避免不了。
laravel自帶的schedule任務(wù)調(diào)度能很好解決這個痛點。
php artisan schedule:run
實現(xiàn)步驟
#每分鐘執(zhí)行一次laravel任務(wù)調(diào)度,注意項目的絕對路徑必須寫正確。
* * * * * * php /site-path/artisan schedule:run >> /dev/null 2>&1
手動運行調(diào)度測試:
php artisan schedule:run
不做具體介紹,請參照官方文檔
protected $commands = [
"App\\Console\\Commands\\MigrateCompanyDataCommand",//遷移代記賬公司數(shù)據(jù)到對象表
"App\\Console\\Commands\\ReportCustomerSettleAccountEventCommand",//上報帳套結(jié)帳事件
"App\\Console\\Commands\\IndicatorComputeCommand",//指標(biāo)計算
];
在調(diào)度配置中增加相關(guān)command任務(wù)的執(zhí)行頻率即可完成定時任務(wù)部署。
protected function schedule(Schedule $schedule)
{
$schedule->command('command任務(wù)文件signature')->hourly();
}
參照:Illuminate\Console\Scheduling\ManagesFrequencies
->cron(' *');在自定義Cron調(diào)度上運行任務(wù)
->everyMinute();每分鐘運行一次任務(wù)
->everyFiveMinutes();每五分鐘運行一次任務(wù)
->everyTenMinutes();每十分鐘運行一次任務(wù)
->everyThirtyMinutes();每三十分鐘運行一次任務(wù)
->hourly();每小時運行一次任務(wù)
->daily();每天凌晨零點運行任務(wù)
->dailyAt('13:00');每天13:00運行任務(wù)
->twiceDaily(1, 13);每天1:00 & 13:00運行任務(wù)
->weekly();每周運行一次任務(wù)
->monthly();每月運行一次任務(wù)
->monthlyOn(4, '15:00');每月4號15:00運行一次任務(wù)
->quarterly();每個季度運行一次
->yearly();每年運行一次
->timezone('America/New_York');設(shè)置時區(qū)
->weekdays();只在工作日運行任務(wù)
->sundays();每個星期天運行任務(wù)
->mondays();每個星期一運行任務(wù)
->tuesdays();每個星期二運行任務(wù)
->wednesdays();每個星期三運行任務(wù)
->thursdays();每個星期四運行任務(wù)
->fridays();每個星期五運行任務(wù)
->saturdays();每個星期六運行任務(wù)
->between($start, $end);基于特定時間段運行任務(wù)
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。