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