V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
duguxiaohuai
V2EX  ›  PHP

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

  •  
  •   duguxiaohuai · 2017-11-22 10:52:27 +08:00 · 3200 次点击
    这是一个创建于 2556 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    5 条回复    2017-12-04 09:40:34 +08:00
    foursking
        1
    foursking  
       2017-11-22 10:58:49 +08:00
    借助外力吧,比如用个 redis 来存储定时器任务
    duguxiaohuai
        2
    duguxiaohuai  
    OP
       2017-11-22 12:37:41 +08:00
    @foursking 现在是放到 mysql 里面存储定时器任务 但是还是不行
    cccRaim
        3
    cccRaim  
       2017-11-22 13:36:03 +08:00
    定时器任务存到数据库,crond 每秒检测是否开启所有任务
    picone
        4
    picone  
       2017-11-22 14:18:37 +08:00
    队列,延时队列比 ticker 好用。
    shinku25
        5
    shinku25  
       2017-12-04 09:40:34 +08:00 via iPhone
    同问。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5750 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 02:20 · PVG 10:20 · LAX 18:20 · JFK 21:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.