溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

swoole如何實現(xiàn)定時任務

發(fā)布時間:2022-02-14 14:34:10 來源:億速云 閱讀:417 作者:小新 欄目:編程語言

這篇文章主要為大家展示了“swoole如何實現(xiàn)定時任務”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學習一下“swoole如何實現(xiàn)定時任務”這篇文章吧。

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

swoole如何實現(xiàn)定時任務

本教程操作環(huán)境:Windows10系統(tǒng)、Swoole4版、DELL G3電腦

swoole如何實現(xiàn)定時任務

swoole_timer_after

在指定的時間后執(zhí)行函數(shù),需要swoole-1.7.7以上版本。

swoole_timer_after(int $after_time_ms, mixed $callback_function);

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

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

  • $callback_function 時間到期后所執(zhí)行的函數(shù),必須是可以調(diào)用的。callback函數(shù)不接受任何參數(shù)

  • $after_time_ms 最大不得超過 86400000

使用示例

swoole_timer_after(1000, function(){
    echo "timeout\n";
});

swoole_timer_tick

設(shè)置一個間隔時鐘定時器,與after定時器不同的是tick定時器會持續(xù)觸發(fā),直到調(diào)用swoole_timer_clear清除。與swoole_timer_add不同的是tick定時器可以存在多個相同間隔時間的定時器。

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

  • $callback_function 時間到期后所執(zhí)行的函數(shù),必須是可以調(diào)用的。callback函數(shù)不接受任何參數(shù)

  • $param 回調(diào)參數(shù)

  • $ms 最大不得超過 86400000

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

tick定時器即將要取代swoole_timer_add

回調(diào)函數(shù)

定時器觸發(fā)的回調(diào)函數(shù)接受2個參數(shù)。

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

  • $params 由swoole_timer_tick傳入的用戶參數(shù)

使用示例

swoole_timer_tick(1000, function(){
    echo "timeout\n";
});

以上是“swoole如何實現(xiàn)定時任務”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI