這篇文章主要為大家展示了“swoole如何實(shí)現(xiàn)定時(shí)任務(wù)”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“swoole如何實(shí)現(xiàn)定時(shí)任務(wù)”這篇文章吧。
成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、北辰網(wǎng)絡(luò)推廣、小程序制作、北辰網(wǎng)絡(luò)營(yíng)銷、北辰企業(yè)策劃、北辰品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供北辰建站搭建服務(wù),24小時(shí)服務(wù)熱線:18982081108,官方網(wǎng)址:www.cdcxhl.com
方法:1、利用“swoole_timer_after(時(shí)間, 執(zhí)行的函數(shù))”語(yǔ)句在指定的時(shí)間后執(zhí)行任務(wù);2、利用“swoole_timer_tick(時(shí)間, 執(zhí)行的函數(shù),回調(diào)函數(shù))”語(yǔ)句設(shè)置一個(gè)間隔時(shí)鐘定時(shí)器定時(shí)執(zhí)行任務(wù)。
本教程操作環(huán)境:Windows10系統(tǒng)、Swoole4版、DELL G3電腦
swoole_timer_after
在指定的時(shí)間后執(zhí)行函數(shù),需要swoole-1.7.7以上版本。
swoole_timer_after(int $after_time_ms, mixed $callback_function);
swoole_timer_after函數(shù)是一個(gè)一次性定時(shí)器,執(zhí)行完成后就會(huì)銷毀。此函數(shù)與PHP標(biāo)準(zhǔn)庫(kù)提供的sleep函數(shù)不同,after是非阻塞的。而sleep調(diào)用后會(huì)導(dǎo)致當(dāng)前的進(jìn)程進(jìn)入阻塞,將無(wú)法處理新的請(qǐng)求。
$after_time_ms 指定時(shí)間,單位為毫秒
$callback_function 時(shí)間到期后所執(zhí)行的函數(shù),必須是可以調(diào)用的。callback函數(shù)不接受任何參數(shù)
$after_time_ms 最大不得超過(guò) 86400000
使用示例
swoole_timer_after(1000, function(){ echo "timeout\n"; });
swoole_timer_tick
設(shè)置一個(gè)間隔時(shí)鐘定時(shí)器,與after定時(shí)器不同的是tick定時(shí)器會(huì)持續(xù)觸發(fā),直到調(diào)用swoole_timer_clear清除。與swoole_timer_add不同的是tick定時(shí)器可以存在多個(gè)相同間隔時(shí)間的定時(shí)器。
int swoole_timer_tick(int $ms, mixed $callback, mixed $param = null);
$ms 指定時(shí)間,單位為毫秒
$callback_function 時(shí)間到期后所執(zhí)行的函數(shù),必須是可以調(diào)用的。callback函數(shù)不接受任何參數(shù)
$param 回調(diào)參數(shù)
$ms 最大不得超過(guò) 86400000
tick定時(shí)器在1.7.14以上版本可用
tick定時(shí)器即將要取代swoole_timer_add
回調(diào)函數(shù)
定時(shí)器觸發(fā)的回調(diào)函數(shù)接受2個(gè)參數(shù)。
function onTimer(int $timer_id, mixed $params = null);
$timer_id 定時(shí)器的ID,可用于swoole_timer_clear清除此定時(shí)器
$params 由swoole_timer_tick傳入的用戶參數(shù)
使用示例
swoole_timer_tick(1000, function(){ echo "timeout\n"; });
以上是“swoole如何實(shí)現(xiàn)定時(shí)任務(wù)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!