使用Swoole實現毫秒級定時任務
阿新 • • 發佈:2020-07-21
指定時間後執行
$timer = \Swoole\Timer::after(毫秒數,function(){ 執行程式碼 });
清除指定定時器
\Swoole\Timer::clear($timer);
附上示例程式碼
$timer1 = \Swoole\Timer::tick(5000,function()use(&$timer1){ static $i = 0; if($i>100){ \Swoole\Timer::clear($timer1); }else{ $i++; } $log = fopen('test.log','a'); fwrite($log,"現在時間是:".date('Y-m-d H:i:s',time())."\n"); fclose($log); });
想要在方法內清除定時任務必須用&號。
附上執行命令
nohup php /root/test.php &
這裡必須加上& 表示指在後臺執行
執行之後會出現一個程序號,可以用kill -9 [程序號] 結束當前程序,當然也可以用ps命令來查程序號
ps -aux| grep test.php
以上方法只能以cli模式執行
注意,必須安裝了swoole拓展才能使用這個方法。此操作也只能在cli模式使用,否則會報錯^^ 看報錯資訊也能看出來