【问题标题】:Job queue with redis using BLPOP使用 BLPOP 的 Redis 作业队列
【发布时间】:2011-08-30 09:41:56
【问题描述】:

我正在尝试使用 redis 和 ruby​​ eventmachine 创建无限的作业队列。为了实现这一点,我使用了 0 超时的 redis BLPOP 命令。成功 BLPOP 后,我再次运行它。

我是在正确的方式上还是有更好的方法来使用 redis 创建作业队列?

【问题讨论】:

标签: redis


【解决方案1】:

如果您单独使用 BLPOP 从队列中删除消息,并且您的消息使用者无法处理它,则该消息将不得不重新排队,以免它与失败的使用者一起永远消失。

为了更持久的消息处理,必须维护正在处理的消息列表,以便在发生故障时可以重新排队。

[B]RPOPLPUSH 非常适合这种情况;它可以原子地从消息队列中弹出消息并将其推送到处理队列中,以便应用程序可以在消费者端发生故障时做出响应。

http://redis.io/commands/rpoplpush

实际的重新排队留给应用程序,但这个 redis 命令提供了这样做的基础。

还有一些使用 redis 在网络上浮动的队列的就地实现,例如 RestMQ [http://www.restmq.com/]

【讨论】:

    猜你喜欢
    • 2017-03-16
    • 2014-01-25
    • 2021-09-16
    • 2019-07-22
    • 1970-01-01
    • 2021-01-23
    • 1970-01-01
    • 1970-01-01
    • 2016-03-04
    相关资源
    最近更新 更多