【发布时间】:2018-02-08 11:49:29
【问题描述】:
我有一个项目需要用 Perl 编写,所以我选择了 ZeroMQ。
有一个客户端程序,为可变数量的工人生成工作。工人是真正的人类操作员,他们将完成一项任务然后请求一项新任务。客户端程序的工作是让所有可用的工作人员整天忙碌。这是一个呼叫中心。
所以每个工人一次只能处理一个任务,并且可能需要一段时间才能请求新任务。并且一天中工作人员的数量可能会有所不同。
客户端需要保留一个任务队列,以便在工人请求时将其提供给他们。每当客户端队列变低时,客户端可以生成更多任务来填充队列。
我应该为此使用什么设计模式(即什么 ZeroMQ 套接字组合)?我浏览了 0MQ 指南中的所有模式,但找不到与此匹配的任何内容。
谢谢
【问题讨论】:
-
ZMQ 看起来更像是用于进程间通信。 SQL表可以很方便地用作队列,并且具有持久性。
-
谢谢。这就是我们开始的地方,不幸的是,我们最终遇到了 MySQL 表上的锁定问题。
-
select for update不会引起问题。 Redis 列表也可以用作队列。 -
《指南》中的负载平衡代理听起来很合适。可能会扩展一些可靠性模式。
标签: perl design-patterns zeromq