您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
workerman的Timer定时器类的add方法实现定时器中销毁当前定时器(参数方式传递$timer_id)
发布时间:2021-12-05 00:09:38编辑:雪饮阅读()
定时器中销毁当前定时器(参数方式传递$timer_id)
实例:
<?php
use Workerman\Worker;
use Workerman\lib\Timer;
require_once __DIR__ . '/vendor/autoload.php';
class Mail
{
public function send($to, $content, $timer_id)
{
// 临时给当前对象添加一个count属性,记录定时器运行次数
$this->count = empty($this->count) ? 1 : $this->count;
// 运行10次后销毁当前定时器
echo "send mail {$this->count}...\n";
if($this->count++ >= 10)
{
echo "Timer::del($timer_id)\n";
Timer::del($timer_id);
}
}
}
$task = new Worker();
$task->onWorkerStart = function(Worker $task)
{
$mail = new Mail();
// 要想$timer_id能正确传递到回调函数内部,$timer_id前面必须加地址符 &
$timer_id = Timer::add(1, array($mail, 'send'), array('to', 'content', &$timer_id));
};
// 运行worker
Worker::runAll();
?>
实例运行到达到销毁条件时:
[root@izj6c2jeancylo0ppo4vz5z workerman]# php test.php start
Workerman[test.php] start in DEBUG mode
------------------------------------- WORKERMAN --------------------------------------
Workerman version:4.0.22 PHP version:7.0.33
-------------------------------------- WORKERS ---------------------------------------
proto user worker listen processes status
tcp root none none 1 [OK]
--------------------------------------------------------------------------------------
Press Ctrl+C to stop. Start success.
send mail 1...
send mail 2...
send mail 3...
send mail 4...
send mail 5...
send mail 6...
send mail 7...
send mail 8...
send mail 9...
send mail 10...
Timer::del(1)
关键字词:workerman,Timer,add,定时器,timer_id,参数,传递
相关文章
- workerman的Timer定时器类的add方法实现定时器中销毁
- workerman的Timer定时器类的add方法实现定时器函数为
- workerman的Timer定时器类的add方法实现定时器函数为
- workerman的Timer定时器类的add方法实现定时函数为类
- workerman的Timer定时器类的add方法实现定时函数为类
- workerman的Timer定时器类的add方法实现定时函数为类
- workerman的Timer定时器类的add方法实现定时函数为类
- workerman的Timer定时器类的add方法实现闭包计划任务(
- workerman的Http服务-请求-获取header
- workerman的Http服务-请求-获取cookie