中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

laravel總結——任務調度

發布時間:2020-08-01 21:46:16 來源:網絡 閱讀:1993 作者:指尖芳華 欄目:web開發

laravel 的任務調度,默認在 App\Console\Kernel 類 的schedule 中

三種調度 計劃方式:

  1. 閉包形式 : call
    protected function schedule(Schedule $schedule){
    $schedule->call(function () {
    //自定義邏輯處理
    })->daily(); //調度頻率
    }
  2. artisan 命令 或者 系統命令 :
    $schedule->command('emails:send --force')->daily();
  3. command 類 :command
    $schedule->command(Command::class, ['--force'])->daily();
    command 類 需要在 App\Console\Kernel 中注冊
    protected $commands = [
    \App\Console\Commands\Inspire::class,
    ];

$schedule->exec('node /home/forge/script.js')->daily(); //可以將命令發送到系統

調度頻率設置

->cron('* * * * *')     自定義調度任務
->everyMinute();     每分鐘執行一次任務
->everyFiveMinutes();   每五分鐘執行一次任務
->everyTenMinutes();    每十分鐘執行一次任務
->everyThirtyMinutes();     每半小時執行一次任務
->hourly();     每小時執行一次任務
->hourlyAt(17);     每一個小時的第 17 分鐘運行一次
->daily();  每到午夜執行一次任務
->dailyAt('13:00');     每天的 13:00 執行一次任務
->twiceDaily(1, 13);    每天的 1:00 和 13:00 分別執行一次任務
->weekly();     每周執行一次任務
->monthly();    每月執行一次任務
->monthlyOn(4, '15:00');    在每個月的第四天的 15:00 執行一次任務
->quarterly();  每季度執行一次任務
->yearly();     每年執行一次任務
->timezone('America/New_York');     設置時區

額外限制條件

->weekdays();   限制任務在工作日
->sundays();    限制任務在星期日
->mondays();    限制任務在星期一
->tuesdays();   限制任務在星期二
->wednesdays();     限制任務在星期三
->thursdays();  限制任務在星期四
->fridays();    限制任務在星期五
->saturdays();  限制任務在星期六
->between($start, $end);    限制任務運行在開始到結束時間范圍內
->unlessBetween($start,$end)
->when(Closure);    限制任務基于一個為真的驗證,傳遞一個閉包,返回真會繼續執行
->skip(Closoure);  返回真,停止執行

避免重復任務

->withoutOverlapping();

強制維護模式下也運行

->evenInMaintenanceMode();
 ->sendOutputTo($filePath);   //輸出任務到文件
 ->appendOutputTo($filePath);  //添加到文件
發送到郵件
$schedule->command('foo')
         ->daily()
         ->sendOutputTo($filePath)   //必須要這個
         ->emailOutputTo('foo@example.com');  

任務鉤子

->before(Clousoure function(){   });
->after(Clousoure function(){   });

ping

->pingBefore($url);
->thenPing($url);
需要擴展包支持
composer require guzzlehttp/guzzle

一次性啟動任務: 常用于測試

php artisan schedule:run   //運行所有任務

定時調度

crontab -e
    * * * * * php  programPath/artisan schedule:run  >> /dev/null 2>&1

總結:可在 command 類的 handle 方法中調用service 服務

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宣恩县| 尚志市| 南投县| 沁阳市| 三门县| 朔州市| 旬阳县| 越西县| 灌云县| 卓尼县| 广宁县| 房山区| 黄梅县| 梁河县| 根河市| 濮阳市| 威信县| 海兴县| 哈尔滨市| 汕头市| 遵义县| 石屏县| 伊宁县| 陈巴尔虎旗| 昌邑市| 普安县| 宕昌县| 沅陵县| 梧州市| 绥棱县| 丁青县| 延津县| 盖州市| 青海省| 利川市| 沙河市| 水富县| 鄂托克前旗| 浑源县| 宁陵县| 且末县|