<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>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # 計劃任務 ## 簡介 過去,你可能需要在服務器上為每一個調度任務去創建 Cron 條目。因為這些任務的調度不是通過代碼控制的,你要查看或新增任務調度都需要通過 SSH 遠程登錄到服務器上去操作,使用起來不是很方便。 現在你可以通過項目內置的任務調度器在項目中清晰明了地實現計劃任務。 ## 1.定義任務模板及任務類 你可以在 \\niucloud\\app\\dict\\schedule\\schedule.php 類中新增任務項 在開始之前,我們來看一個例子:我們計劃每天凌晨一點二十分執行一個訂單關閉的任務: ``` <?php return [ [ 'key' => 'order_close',//任務標識 'name' => '未支付訂單自動關閉',//任務名稱 'desc' => '',//任務介紹 'time' => [ 'type' => 'day',//任務調度頻率類型 'day' => 1,//每隔幾日 'hour' => 1,//當日執行時間具體小時數 'min' => 20,//當日執行時間具體分鐘數 ], 'class' => '', 'function' => '' ] ]; ``` ## 特別注意:修改傳參后需要重啟重啟 workerman 在可生效!!! * key值代表任務模板的標識,必須是惟一的。 * name 任務名稱。 * time任務頻率間隔 * class 任務消費層所在類的路徑,如果為空的話會自動在niucloud\\app\\job\\schedule\\路徑下尋找當前任務key值下劃線轉駝峰的類 * function任務調用方法 ### 任務調度頻率類型 time 下的type代表任務的調度頻率 * type為min,min為1表示每分鐘運行一次任務 * type為hour,hour為1 min為1表示每隔一小時的第幾分鐘運行一次任務 * type為day,day為1 hour為1 min為1表示每隔一日的1時1分運行一次任務 * type為week,week為1 hour為1 min為1表示每周周一的1時1分運行一次任務 * type為month,day為1 hour為1 min為1表示每月一號的1時1分運行一次任務 ### 任務模板class值(任務消費類的位置)和function(方法名) 任務消費類所在位置,默認可以為空,如果為空的話會自動在niucloud\\app\\job\\schedule\\路徑下尋找當前任務key值下劃線轉駝峰的類,如果不為空的話 1. class值如果為空的話自動在niucloud\\app\\job\\schedule\\路徑下尋找當前任務key值下劃線轉駝峰的類 ``` <?php return [ [ 'key' => 'order_close',//任務標識 'name' => '未支付訂單自動關閉',//任務名稱 'desc' => '',//任務介紹 'time' => [ 'type' => 'day',//任務調度頻率類型 'day' => 1,//每隔幾日 'hour' => 1,//當日執行時間具體小時數 'min' => 20,//當日執行時間具體分鐘數 ], 'class' => '', 'function' => '' ] ]; ``` 如果OrderClose類不存在,就在niucloud\\app\\job\\schedule\\路徑下創建一個OrderClose類 ``` <?php namespace app\job\schedule; use core\base\BaseJob; use think\facade\Log; /** * 隊列異步調用定時任務 */ class OrderClose extends BaseJob { public function doJob() { //具體的任務代碼 //...... return true; } } ``` 2. class值如果存在值的話,會直接通過class路徑去直接尋找任務類 ``` <?php return [ [ 'key' => 'order_close',//任務標識 'name' => '未支付訂單自動關閉',//任務名稱 'desc' => '',//任務介紹 'time' => [ 'type' => 'day',//任務調度頻率類型 'day' => 1,//每隔幾日 'hour' => 1,//當日執行時間具體小時數 'min' => 20,//當日執行時間具體分鐘數 ], 'class' => 'app\job\schedule\OrderClose1', 'function' => '' ] ]; ``` ```<?php namespace app\job\schedule; use core\base\BaseJob; use think\facade\Log; /** * 隊列異步調用定時任務 */ class OrderClose1 extends BaseJob { public function doJob() { //具體的任務代碼 //...... return true; } } ``` 3. function值如果為空值的話會默認調用doJob方法 ``` <?php return [ [ 'key' => 'order_close',//任務標識 'name' => '未支付訂單自動關閉',//任務名稱 'desc' => '',//任務介紹 'time' => [ 'type' => 'day',//任務調度頻率類型 'day' => 1,//每隔幾日 'hour' => 1,//當日執行時間具體小時數 'min' => 20,//當日執行時間具體分鐘數 ], 'class' => '', 'function' => '' ] ]; ``` ```<?php namespace app\job\schedule; use core\base\BaseJob; use think\facade\Log; /** * 隊列異步調用定時任務 */ class OrderClose extends BaseJob { public function doJob() { //具體的任務代碼 //...... return true; } } ``` 4. function值如果不為空值的話會在class類內部直接調用 ``` <?php return [ [ 'key' => 'order_close',//任務標識 'name' => '未支付訂單自動關閉',//任務名稱 'desc' => '',//任務介紹 'time' => [ 'type' => 'day',//任務調度頻率類型 'day' => 1,//每隔幾日 'hour' => 1,//當日執行時間具體小時數 'min' => 20,//當日執行時間具體分鐘數 ], 'class' => '', 'function' => 'doJob1' ] ]; ``` ``` <?php namespace app\job\schedule; use core\base\BaseJob; use think\facade\Log; /** * 隊列異步調用定時任務 */ class OrderClose extends BaseJob { public function doJob1() { //具體的任務代碼 //...... return true; } } ``` ## 2.添加計劃任務到數據庫 任務添加到模板之后,這時候任務還不能使用,還需要將任務模板寫入到數據庫中 1. 進入應用 - 開發 - 計劃任務 ![](https://img.kancloud.cn/99/3a/993ad29ad81710115572a0f85fb9906a_1855x905.png) 2點擊添加任務,選擇之前添加的任務模板,然后選擇任務調度頻率,點擊確認任務就添加成功了 ![](https://img.kancloud.cn/fa/d6/fad63845514b191a981f36e5b008a8e2_1848x891.png) ## 3.啟動計劃任務 1. 直接在終端運行命令 ``` php think workerman ``` 2結合項目所在服務器系統的計劃任務來使用 ``` * * * * cd /您的項目路徑 && php think cron:run >> /dev/null 2>&1 ``` ## 4.調試完畢后,可以使用 [Supervisor](https://blog.ll00.cn/archives/4.html) 來保持隊列的進程常駐。 參考配置: ``` [program:cron-schedule ] command=php think cron:schedule directory=/www/wwwroot/您的項目路徑/ user=www priority=999 numprocs=1 ``` 也可以配合寶塔使用 ![](https://img.kancloud.cn/7b/b6/7bb600903e0df66f31acab8609276e2e_1297x878.png) ***** :-: 若有收獲,就點個贊吧
                  <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>

                              哎呀哎呀视频在线观看