swoole怎么實現定時任務

方法:1、利用“swoole_timer_after(時間, 執行的函數)”語句在指定的時間后執行任務;2、利用“swoole_timer_tick(時間, 執行的函數,回調函數)”語句設置一個間隔時鐘定時器定時執行任務。

swoole怎么實現定時任務

本教程操作環境:Windows10系統、Swoole4版、DELL G3電腦

swoole怎么實現定時任務

swoole_timer_after

在指定的時間后執行函數,需要swoole-1.7.7以上版本。

swoole_timer_after(int?$after_time_ms,?mixed?$callback_function);

swoole_timer_after函數是一個一次性定時器,執行完成后就會銷毀。此函數與php標準庫提供的sleep函數不同,after是非阻塞的。而sleep調用后會導致當前的進程進入阻塞,將無法處理新的請求。

  • $after_time_ms 指定時間,單位為毫秒

  • $callback_function 時間到期后所執行的函數,必須是可以調用的。callback函數不接受任何參數

  • $after_time_ms 最大不得超過 86400000

使用示例

swoole_timer_after(1000,?function(){ ????echo?"timeoutn"; });

swoole_timer_tick

設置一個間隔時鐘定時器,與after定時器不同的是tick定時器會持續觸發,直到調用swoole_timer_clear清除。與swoole_timer_add不同的是tick定時器可以存在多個相同間隔時間的定時器。

int?swoole_timer_tick(int?$ms,?mixed?$callback,?mixed?$param?=?null);
  • $ms 指定時間,單位為毫秒

  • $callback_function 時間到期后所執行的函數,必須是可以調用的。callback函數不接受任何參數

  • $param 回調參數

  • $ms 最大不得超過 86400000

tick定時器在1.7.14以上版本可用

tick定時器即將要取代swoole_timer_add

回調函數

定時器觸發的回調函數接受2個參數。

function?onTimer(int?$timer_id,?mixed?$params?=?null);
  • $timer_id 定時器的ID,可用于swoole_timer_clear清除此定時器

  • $params 由swoole_timer_tick傳入的用戶參數

使用示例

swoole_timer_tick(1000,?function(){ ????echo?"timeoutn"; });

推薦學習: swoole教程

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊9 分享