【问题标题】:Unique job data in beanstalkdbeantalkd 中的唯一作业数据
【发布时间】:2014-11-06 18:20:21
【问题描述】:

我今天一直在测试 beanstalkd,我想知道是否有可能使工作数据在 beanstalkd 管上独一无二?换句话说,是否有可能使管子只有唯一值?如果没有,也许有人可以向我推荐具有此功能的类似 MQ 系统。

提前感谢您的回答!

【问题讨论】:

  • 你如何定义独特的信息?还请提供您尝试解决的问题的性质,以及为什么您需要独特的消息,因为任何消息队列的请求都已关闭。
  • 您好,我想要实现的是管子只有唯一值。例如,如果管的工作数据是“1”,然后是“2”,然后是“3”,我希望不可能添加“1”。我打算用这个队列发送邮件。
  • 您好,感谢您指出:)

标签: mq beanstalkd


【解决方案1】:

嗯,您要查找的是 SET 而不是 QUEUE。

  • 集合不允许重复成员。
  • 如果您想保持队列中的订单,Redis 有 Sorted Sets

您可以使用 Redis 实现您想要的,在此处阅读有关数据类型的信息:
http://redis.io/topics/data-types

【讨论】:

  • 非常感谢您的回答 :) 我发现 SPOP 可以从集合中返回随机元素然后将其删除,这对我来说听起来很完美。只有一个问题 - 我的系统将有 20-30 名工作人员几乎同时发送 SPOP,那么 Redis 是否有可能为一些工作人员返回相同的值?
  • Redis 是单线程的,所以“一次”只有一个客户端在工作,pop 操作是原子的。
猜你喜欢
  • 2013-07-08
  • 2017-11-24
  • 1970-01-01
  • 2012-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-10
相关资源
最近更新 更多