duguxiaohuai
V2EX  ›  PHP

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

  •  
  •   duguxiaohuai · Nov 22, 2017 · 3808 views
    This topic created in 3127 days ago, the information mentioned may be changed or developed.

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

    5 replies    2017-12-04 09:40:34 +08:00
    foursking
        1
    foursking  
       Nov 22, 2017
    借助外力吧,比如用个 redis 来存储定时器任务
    duguxiaohuai
        2
    duguxiaohuai  
    OP
       Nov 22, 2017
    @foursking 现在是放到 mysql 里面存储定时器任务 但是还是不行
    cccRaim
        3
    cccRaim  
       Nov 22, 2017
    定时器任务存到数据库,crond 每秒检测是否开启所有任务
    picone
        4
    picone  
       Nov 22, 2017
    队列,延时队列比 ticker 好用。
    shinku25
        5
    shinku25  
       Dec 4, 2017 via iPhone
    同问。。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5622 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 03:44 · PVG 11:44 · LAX 20:44 · JFK 23:44
    ♥ Do have faith in what you're doing.