php start.php reload 我有一个创建的定时器 会每隔1秒向长连接客户端推送倒计时 重启服务或者平台重启 倒计时推送就会停止了 这种情况该怎么处理好一点 倒计时为0 的时候会触发下一个定时器推送对战结果 这个也会跟着消失了
都是最新版本
直接reload 定时器肯定没有了,提供服务的进程重启了。 当然你可以reload -g 这样的话,旧的服务不会处理新连接,新开的worker会处理新连接。 那么旧worker什么时候退出,在旧worker连接数0的时候。
这样是不是更新的代码要很长一段时间才会生效
你把维持心跳的worker 单独做个服务,然后设置reloadable = false, 这样其它进程立马就可以更新了呀
如果你想要某个worker 不被reload 所干扰导致连接断开。 你可以看看这个:https://www.workerman.net/doc/workerman/worker/reloadable.html 对应不想要被reload干扰的worker, reloadable = false; 就可以了,这样其余worker reload,不会干扰你有定时器这个服务。
不能把全部要执行的定时器计划放到数据库吗?比如今天计划要给877 878 879三个客户推送倒计时,没推的时候,标记为0,开始推了,开始推标记为1,结束标记为2,Timer每2秒检查一次计划表,每次重启服务器,就在服务进程初始化方法里 删除全部正在进行的任务,重新开启标记为1的任务,这样不知道能不能行
直接reload 定时器肯定没有了,提供服务的进程重启了。
当然你可以reload -g 这样的话,旧的服务不会处理新连接,新开的worker会处理新连接。
那么旧worker什么时候退出,在旧worker连接数0的时候。
这样是不是更新的代码要很长一段时间才会生效
你把维持心跳的worker 单独做个服务,然后设置reloadable = false, 这样其它进程立马就可以更新了呀
如果你想要某个worker 不被reload 所干扰导致连接断开。
你可以看看这个:https://www.workerman.net/doc/workerman/worker/reloadable.html
对应不想要被reload干扰的worker, reloadable = false; 就可以了,这样其余worker reload,不会干扰你有定时器这个服务。
不能把全部要执行的定时器计划放到数据库吗?比如今天计划要给877 878 879三个客户推送倒计时,没推的时候,标记为0,开始推了,开始推标记为1,结束标记为2,Timer每2秒检查一次计划表,每次重启服务器,就在服务进程初始化方法里 删除全部正在进行的任务,重新开启标记为1的任务,这样不知道能不能行