<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 定時任務 ## 定時任務 > **注意**:有關如何設置調度程序任務的說明,請參閱[安裝指南](https://octobercms.com/docs/setup/installation#crontab-setup)。 ### 定義時間表 * 在`lugin注冊類`中的`registerSchedule`方法來定義所有計劃的任務。 * 參數`$schedule`,定義命令及其頻率 * 示例,`Closure`每天調用一次。`Closure`將執行數據庫查詢以清除表: ~~~ class Plugin extends PluginBase { [...] public function registerSchedule($schedule) { $schedule->call(function () { \Db::table('recent_users')->delete(); })->daily(); } } ~~~ 使用`command`方法來調度控制臺命令: ~~~ $schedule->command('cache:clear')->daily(); ~~~ 該`exec`命令可用于向操作系統發出命令: ~~~ $schedule->exec('node /home/acme/script.js')->daily(); ~~~ ### 安排頻率選項 當然,您可以為任務分配各種時間表: | 方法 | 描述 | | --- | --- | | `->cron('* * * * *');` | 按照自定義Cron時間表運行任務 | | `->everyMinute();` | 每分鐘運行一次任務 | | `->everyFiveMinutes();` | 每五分鐘運行一次任務 | | `->everyTenMinutes();` | 每十分鐘運行一次任務 | | `->everyThirtyMinutes();` | 每三十分鐘運行一次任務 | | `->hourly();` | 每小時運行一次任務 | | `->daily();` | 每天午夜運行任務 | | `->dailyAt('13:00');` | 每天13:00運行任務 | | `->twiceDaily(1, 13);` | 每天在1:00和13:00運行任務 | | `->weekly();` | 每周運行任務 | | `->monthly();` | 每月運行任務 | 這些方法可以與其他約束條件結合使用,以創建甚至只在一周的某些天運行的更精細的計劃。例如,要安排一個命令在星期一每周運行: ~~~ $schedule->call(function () { // 每周一13:00運行一次... })->weekly()->mondays()->at('13:00'); ~~~ 以下是其他計劃約束的列表: | 方法 | 描述 | | --- | --- | | `->weekdays();` | 將任務限制為工作日 | | `->sundays();` | 將任務限制為星期日 | | `->mondays();` | 將任務限制為星期一 | | `->tuesdays();` | 將任務限制為星期二 | | `->wednesdays();` | 將任務限制為星期三 | | `->thursdays();` | 將任務限制為星期四 | | `->fridays();` | 將任務限制為星期五 | | `->saturdays();` | 將任務限制為星期六 | | `->when(Closure);` | 根據真相測試限制任務 | #### 真相測試約束 * 該`when`方法可以用于基于給定真值測試的結果來限制任務的執行。 * 如果條件為真 則執行 ~~~ $schedule->command('emails:send')->daily()->when(function () { return true; }); ~~~ ### [](https://octobercms.com/docs/plugin/scheduling#preventing-task-overlaps)防止任務重疊 默認情況下,即使任務的先前實例仍在運行,計劃的任務也將運行。為防止這種情況,可以使用以下`withoutOverlapping`方法: ~~~ $schedule->command('emails:send')->withoutOverlapping(); ~~~ 在此示例中,如果`emails:send`[控制臺命令](https://octobercms.com/docs/console/commands)尚未運行,則將每分鐘運行一次。`withoutOverlapping`如果您的任務在執行時間上有很大不同,從而使您不必準確預測給定任務將花費多長時間,則該方法特別有用。 ### [](https://octobercms.com/docs/plugin/scheduling#task-output)任務輸出 計劃程序提供了幾種方便的方法來處理計劃任務生成的輸出。首先,使用該`sendOutputTo`方法,您可以將輸出發送到文件中以供以后檢查: ~~~ $schedule->command('emails:send') ->daily() ->sendOutputTo($filePath); ~~~ 使用該`emailOutputTo`方法,您可以將輸出通過電子郵件發送到您選擇的電子郵件地址。請注意,必須首先使用`sendOutputTo`方法將輸出發送到文件。同樣,在通過電子郵件發送任務輸出之前,您應該配置[郵件服務](https://octobercms.com/docs/services/mail): ~~~ $schedule->command('foo') ->daily() ->sendOutputTo($filePath) ->emailOutputTo('foo@example.com'); ~~~ > **注:**該`emailOutputTo`和`sendOutputTo`方法是獨家的`command`方法,并且不支持`call`。 ### [](https://octobercms.com/docs/plugin/scheduling#task-hooks)任務掛鉤 使用`before`和`after`方法,您可以指定計劃任務完成之前和之后要執行的代碼: ~~~ $schedule->command('emails:send') ->daily() ->before(function () { // Task is about to start... }) ->after(function () { // Task is complete... }); ~~~ #### ping URL 使用`pingBefore`和`thenPing`方法,計劃程序可以在任務完成之前或之后自動ping給定URL。此方法對于通知外部服務您計劃的任務即將開始或完成很有用: ~~~ $schedule->command('emails:send') ->daily() ->pingBefore($url) ->thenPing($url); ~~~ > 您需要先安裝[驅動程序插件,](http://octobercms.com/plugin/october-drivers)然后才能使用`pingBefore($url)`或`thenPing($url)`功能。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看