thinkphp6 定時器腳本


     最近做個項目需要用到一些cli腳本進行執行,當時沒想那么多,就進行了編寫。后來放到linux執行總是有問題,然后一頓搜索,搜到一個是方法需要修改源代碼,試了下,可以執行,在windows本地環境下可以,Linux下環境就不行了。這個坑只能再添了。最后發現人家thinkphp6提供了這個東西。只不過沒注意

     大致步驟如下

1.編寫相應的commands命令,

1.輸入php think make:command Hello hello
2.修改app\command\Hello 中execute函數自己的邏輯代碼
3.在config/console.php注冊命令.

<?php
return [
    'commands' => [
        'hello' => 'app\command\Hello',
    ]
];

自己可以看手冊,

 

 

 

 

 

 

2.在寶塔終端配置下定時任務

在寶塔面板創建一個定時任務,寫入一段簡單的定時shell腳本(注意修改成自己tp6網站根目錄)

  1. Path=/www/wwwroot/xxx.com
  2. cd $Path
  3. php think joke_update


完成.這里推薦使用寶塔,寶塔可以看到任務執行結果!
若沒有安裝寶塔,可以自己寫個shell腳本,存為shell文件

  1. #!/bin/bash
  2. Path=/www/wwwroot/xxx.com
  3. cd $Path
  4. php think joke_update

然后在crontab,編寫定時表達式,並執行上面的腳本內容即刻,操作上還是寶塔便捷.

或者說你自己編輯crotab 一般就是php路徑  執行腳本的路徑     

例如在 /usr/local/bin/php,則 crontab -e 中可以這樣寫:(文件會越來越大)

1
* * * * *  /usr/local/bin/php  /path/yourapp/think  hello>> /path/yourlog/hello .log 2>&1

如果你想把日志分成每天來單獨記錄,可以這樣寫:

1
* * * * * /usr/local/bin/php /path/yourapp/think hello>>/path/yourlog/hello_`date -d  'today'  +\%Y-\%m-\%d`.log  2 >& 1

 其實就是 找到 think 這個文件,然后執行命令。   /path/yourapp/think 命令     這個think 腳本一般是在根目錄下


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM