您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“swoole如何實現定時任務”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“swoole如何實現定時任務”這篇文章吧。
方法:1、利用“swoole_timer_after(時間, 執行的函數)”語句在指定的時間后執行任務;2、利用“swoole_timer_tick(時間, 執行的函數,回調函數)”語句設置一個間隔時鐘定時器定時執行任務。
本教程操作環境:Windows10系統、Swoole4版、DELL G3電腦
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 "timeout\n"; });
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 "timeout\n"; });
以上是“swoole如何實現定時任務”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。