方法: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);
function onTimer(int $timer_id, mixed $params = null);
swoole_timer_tick(1000, function(){ echo "timeout\n"; });
以上是swoole怎麼實現定時任務的詳細內容。更多資訊請關注PHP中文網其他相關文章!