2014-11-05 4 views
0

Я тестировал beanstalkd сегодня, и мне интересно, есть ли возможность сделать уникальные данные о работе на трубке beanstald? Другими словами, возможно ли, чтобы трубка имела только уникальные значения? Если нет, возможно, кто-то может предложить мне такую ​​же систему MQ, которая имеет эту функцию.Уникальные данные о работе в beanstalkd

Заранее благодарю вас за ответы!

+0

как вы определяете уникальный сообщение? также укажите характер проблемы, которую вы пытаетесь достичь, и почему вам нужны уникальные сообщения, так как запрос отключен для любой очереди сообщений. – Pentium10

+0

Привет, ну, чего я хочу достичь, это то, что трубка будет иметь только уникальные значения. Например, если данные работы трубки равны «1», то «2», затем «3», я бы хотел, чтобы не было возможности добавить «1», например. Я планирую использовать эту очередь для отправки писем. – WebDevHere

+0

Привет, спасибо, что указали его :) – WebDevHere

ответ

1

Ну, что вы ищете, это SET, а не QUEUE.

  • Наборы не позволяют дублировать участников.
  • Redis имеет Сортировано наборы, если вы хотите сохранить порядок, как в очереди

Вы можете добиться того, что вы хотите с Redis, прочитайте информацию о типах данных здесь:
http://redis.io/topics/data-types

+0

Большое спасибо за ваш ответ :) Я обнаружил, что SPOP может вернуть случайный элемент из набора, а затем удалить его, что звучит идеально для меня. Только один вопрос: в моей системе будет 20-30 рабочих, которые будут отправлять SPOP почти в одно и то же время, так что, возможно, Redis вернет одинаковое значение для некоторых из рабочих? – WebDevHere

+0

Redis однопоточный, так что только один клиент работает «на времени», а поп-операция является атомарной. – Pentium10