美文网首页
延迟任务

延迟任务

作者: i灬Mango | 来源:发表于2019-12-30 20:05 被阅读0次

    [研究背景]

    🌰: 下单之后如果三十分钟之内没有付款就自动取消订单。
    🌰: 定时任务的调度, 当天某些需要处理的数据

    [当前处理方式]

    定期轮训数据库

    优点:实现简单
    缺点:数据量过大时会消耗太多的IO资源,效率太低

    [思路]

    1. swoole定时器
    2. 利用rabbitMQ的TTL机制

    [实践]

    swoole

    ps: 本来是想解决 lumen秒级系统定时任务来了解的(lumen秒级定时 可以写一个互斥+sleep实现 但觉得low 好了好了 回归正题)

    a simple demo

    延迟/定时 demo

    就....简单利用了一下,顺便看了看swoole是真滴强,,,就是需要一定的学习成本
    也出了好几个框架铺平了路

    rabbitMQ理论验证

    Dead Letter Exchange

    在队列上指定一个死信交换机,当在该队列上发生:
    1.消息被拒绝
    2.消息过期而被删除(TTL)
    3.消息数量超过队列最大限制而被删除
    4.消息总大小超过队列最大限制而被删除
    上边的抄来的~~~~~~ 我们来看TTL就好了


    就这么个意思

    咱先来个交换机


    就是个普通的交换机
    搞一个死信queue

    我们之前创建的交换机 作为DLX (但要注意 in the same virtual host)


    设置DLX
    我又创建了一个普通queue 作为死信消息的载体queue
    next...
    绑定一哈~

    好啦 我们可以验收成果了 请看演示.......

    相关文章

      网友评论

          本文标题:延迟任务

          本文链接:https://www.haomeiwen.com/subject/wnmmoctx.html