聯系官方銷售客服
1835022288
028-61286886
任務隊列怎么使用
自定義函數是
function my_cron_dingshi($params) { $data = array( 'uid' => $params['code1'], 'title' => $params['code2'], 'inputtime' => SYS_TIME ); $rt = \Phpcmf\Service::M()->db->table('1_form_test')->insert($data); if($rt){ return dr_return_data(1, 'ok'); }else{ return dr_return_data(0, '失敗原因'); } }
定義了一個控制器
public function test() { // 寫你的程序代碼 $rt = \Phpcmf\Service::M('cron')->add_cron(SITE_ID, "dingshi", [ 'code1' => '參數1', 'code2' => '參數2', 'code3' => '參數3', ]); print_r($rt); }
手動訪問控制器的結果
Array ( [code] => 118 [msg] => [data] => Array ( ) )
后臺中任務隊列中沒有看到添加的任務,但是發現表中插入了數據
執行成功的任務會刪除記錄的,所以你看不到記錄
那怎么加入隊列
文檔上應該就是說添加add_cron的那個函數
回復@平平
發現表中插入了數據,說明這個任務已經執行成功啦,說明你成功了
我可能沒說清楚,是1_form_test表插入數據
但應該是先把任務插入到任務隊列,然后到點再執行任務吧
我這里是都沒插入到任務隊列,任務就直接執行了
回復@如來
1_form_test表插入數據說明你任務已經成功了
流程是:
先把任務插入到任務隊列
分支1:然后系統就自動執行任務,執行完畢,入庫formtest表記錄,刪除任務隊列記錄
分支2:如果沒有設置自動任務代碼,就會先入庫到任務對列表,然后手動去點執行,點了執行成功,刪除本條任務記錄
作者之前推薦使用cron.php
我現在的問題是怎么插入到任務隊列
看文檔是寫那個add_cron的函數就行了
但是我執行那個函數就直接入庫formtest表了
回復@易學習
怎么用呢
回復@胡金海
這個id 118就是任務隊列的記錄id號,應該你已經執行成功了,系統就刪除了118的記錄,你就看不到,學習哥分析的好
你把參數改成0,故意讓他失敗,你就可以在任務隊列里面看到了,
因為你都執行成功了,cms會自動刪除記錄的
現在是執行這個函數
就直接執行了這個函數
按您的參數改成0,確實看到在隊列里了。但是這樣我直接執行my_cron_dingshi就行了啊
任務隊列不就是為了先準備幾個任務,然后到時間訪問/index.php?s=api&c=run作為定時任務嗎
回復@易學習
那可能是創始人技術大神的程序有bug,我發郵件問問創始人大哥
好的謝謝
那請問一下,定時任務,您們都是怎么處理的?
回復@易學習
我習慣用的這個方法
參考文檔:《自定義任務Cron.php》
定時我都寫進bt面板里面