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

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # 定時任務 [TOC=2,3] 項目在線上運行時,經常要定時去執行某個功能,這時候就需要使用定時任務來處理了。ThinkJS 支持命令行方式調用,結合系統的 crontab 功能可以很好的支持定時任務。 ## 命令行執行 ThinkJS 除了支持通過 URL 訪問來執行外,還可以通過命令行的方式調用執行。使用方式如下: ~~~ node www/production.js home/index/index ~~~ 上面的命令表示執行?`home`?模塊下?`index`?Controller 里的 indexAction。 #### 攜帶參數 如果需要加參數,只要在后面加上對應的參數即可: ~~~ node www/production.js home/index/index?name=thinkjs ~~~ Action 里就可以通過?`this.get`?方法來獲取參數?`name`?了。 #### 修改請求方法 命令行執行默認的請求類型是 GET,如果想改為其他的類型,可以用下面的方法: ~~~ node www/production.js url=home/index/index&method=post ~~~ 這樣就把請求類型改為了 post。但這種方式下,參數 url 的值里就不能包含 & 字符了(可以通過上面 / 的方式指定參數)。 除了修改請求類型,還可以修改下面的參數: * `host`?修改請求的 host 默認為 127.0.0.1 * `ip`?修改請求的 ip 默認為 127.0.0.1 #### 修改 header 有時候如果想修改更多的 headers,可以傳一個完整的 json 數據,如: ~~~ node www/production.js {"url":"/index/index","ip":"127.0.0.1","method":"POST","headers":{"xxx":"yyyy"}} ~~~ #### 禁止 URL 訪問 默認情況下,命令行執行的 Action 通過 URL 也可以訪問到。如果禁止 URL 訪問到該 Action,可以通過`think.cli`?來判斷。如: ~~~ export default class extends think.controller.base { indexAction(){ //禁止 URL 訪問該 Action if(!think.cli){ this.fail("only invoked in cli mode"); } ... } } ~~~ ## 執行腳本 可以創建一個簡單的執行腳本來調用命令行執行,如: ~~~ cd project_path; node www/prodution.js home/index/index; ~~~ 在項目目錄下創建目錄?`crontab`,將上面執行腳本存為一個文件放在該目錄下。 ## 定時執行 借助系統里的 crontab 可以做到定時執行,通過命令?`crontab -e`?來編輯定時任務,如: ~~~ 0 */1 * * * /bin/sh project_path/crontab/a.sh # 1 小時執行一次 ~~~ ## 使用 node-crontab 模塊執行定時任務 除了使用 crontab 和命令行聯合執行定時任務外,也可以使用?`node-crontab`?模塊執行定時任務。如: ~~~ import crontab from "node-crontab"; // 1 小時執行一次 let jobId = crontab.scheduleJob("0 */1 * * *", () => { }); ~~~ 將上面代碼文件存放在?`src/common/bootstrap`?目錄下,這樣可以在服務啟動時自動執行。
                  <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>

                              哎呀哎呀视频在线观看