服务器重启 swoole 如何加载之前的定时器 困扰了两个周的问题

2017-11-22 10:52:27 +08:00
 duguxiaohuai

具体描述: 用户下单触发一个定时器任务 获得了定时器的 ID 当业务流程发生变动时 通过定时器 ID 销毁掉定时器 比如现在已触发定时器(ID 分别为 1,2,3) 而这时服务器发现异常需要重启 同时 swoole 服务也要重启 目前问题是重启服务器后 再次触发定时器 ID 重新从 1 开始 而且之前已触发的(ID 分别为 1,2,3)的定时器已销毁 怎么才能在重启服务器后恢复之前的定时器任务?求大神指点迷津

3079 次点击
所在节点    PHP
5 条回复
foursking
2017-11-22 10:58:49 +08:00
借助外力吧,比如用个 redis 来存储定时器任务
duguxiaohuai
2017-11-22 12:37:41 +08:00
@foursking 现在是放到 mysql 里面存储定时器任务 但是还是不行
cccRaim
2017-11-22 13:36:03 +08:00
定时器任务存到数据库,crond 每秒检测是否开启所有任务
picone
2017-11-22 14:18:37 +08:00
队列,延时队列比 ticker 好用。
shinku25
2017-12-04 09:40:34 +08:00
同问。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/408503

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX