php swoole 启动 关闭 工具,swoole定时器莫名的自动关闭了,但是所有进程都正常运行?...

1.使用swoole的tick创建了定时器,每3s去数据库查询需要发送的信息并进行发送,但是运行几天后定时器就不跑了,定时器是在启动worker进程时

function onWorkerStart(swoole_server $serv, $worker_id)

{

$this->loger->write_log('info',"Work_id " . $worker_id . " start \n");

//如果当前运行的进程是task进程

if($worker_id < $serv->setting['worker_num'])

{

//开始执行任务

$serv->task($worker_id);

}

//添加定时器 只在第一个worker启动时创建一个定时器 来定时检索有没有要推送的消息

if($worker_id == 0)

{

//创建定时器

$timer = $serv->tick(3000,function ($timer_id){

$db = new DBO(config_item('mall_db_config'));

//获取所有未发送的推送消息

$query_param = array('limit'=>100,'order'=>'createon asc','where'=>'msg_status = 0');

$msgs = $db->select('t_msg_push',

array('id','mall_id','member_id','vpl','in_time','out_time','park_code',

'pay_points','park_duration','residual_points','msg_type'),

$query_param

);

if(!empty($msgs))

{

push_msg($msgs,$db);

}

else

{

simple_log('No message to send.');

}

//关闭数据库连接

$db->close();

});

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值