1. 程式人生 > 實用技巧 >使用Swoole實現毫秒級定時任務

使用Swoole實現毫秒級定時任務

指定時間後執行

 $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模式使用,否則會報錯^^ 看報錯資訊也能看出來