是否有一个消息解决方案(最好支持Python),我可以使用像邮箱,例如从任何给定的队列中检索消息而不必订阅?我认为消息队列可以工作,但我必须重复订阅,从队列中获取消息,然后取消订阅,这听起来并不理想。协议检索和发布消息(消息队列没有pub/sub)
0
A
回答
1
大部分(如果不是全部)消息解决方案支持短信两种模式
发布\订阅,也就是说,你需要订阅得到的消息。
排队 - 一方向队列发送消息,另一方从队列中读取消息 - 不需要预订,消息在读取时消耗。
其实,标准的队列是比较常见的,然后发布订阅 - 你必须找到一个支持排队的工具更好的机会,但不是酒馆\子,然后找到支持酒馆\子但不排队的工具。
您可能正在寻找第二模式
0
有很多选择。这里有两个:
看看Redis。有两个Python客户端库(参见redis-py和txRedis)。您所描述的操作(类似邮箱的操作)可以通过在Redis的列表中执行
blpop
来模拟。另一种选择是RabbitMQ。它有很多Python客户端库py-ampqlib和txAMQP。您可以通过执行
basic.get
和basic.ack
(有关更多信息,请参阅this reference)将此视为类似邮箱的队列。
0
的RabbitMQ - http://www.rabbitmq.com
ZeroMQ - http://www.zeromq.org
亚马逊SQS - http://aws.amazon.com/sqs
所有这三个有Python库。 前两个是免费的。如果您不发送和接收数百万条消息,SQS成本非常低,并且具有高可用性的优点,并且无需您自己管理主机。
关于订阅和取消订阅,如果您从队列中拉取消息,而不是让队列将消息推送给您(pub/sub),那么您没有订阅和取消订阅。在上面的所有例子中,您不会承担任何开销。
相关问题
- 1. 队列中没有消息
- 2. 消息队列+ ajax没有触发
- 3. DNS协议,消息
- 4. 从队列中获取消息只检索单条消息
- 5. 从RabbitMQ队列中检索消息
- 6. 从消息队列中检索数据
- 7. 在远程队列中发布消息
- 8. 消息传递协议
- 9. 自定义协议不发送消息
- 10. 没有本地消息队列服务器的远程消息队列
- 11. SQL Server和消息队列
- 12. 消息队列中的多条消息
- 13. Websphere消息队列
- 14. Boost消息队列
- 15. unix消息队列
- 16. 消息队列ENOMEM
- 17. Sinatra消息队列
- 18. JMS消息生产者不会将消息发送到队列
- 19. pubsub:显示谁发送了该消息?
- 20. xmpp pubsub不传递消息
- 21. Microsoft消息队列和资源发布的最佳实践
- 22. AWS SQS错误检索PHP中带有空队列的消息
- 23. 有没有更好的方法来计算消息队列(MSMQ)中的消息?
- 24. 消息代理队列和消息类型
- 25. 消息队列和服务总线的消息粒度
- 26. 带有Java消息的消息驱动Bean队列关闭
- 27. 消息没有从solace队列中消耗
- 28. 每个发件人的消息队列
- 29. 向AMQP队列发送大量消息
- 30. MSMQ发送消息到远程队列
是不是在模拟Redis的消息队列,或任何与此有关的数据库,一个次优解?毕竟,像RabbitMQ这样的专用消息队列已经解决了你自己模拟队列行为时必须解决的大多数问题。 – Elad 2011-03-30 07:34:55
“次优”的定义是什么?那队列是如何“模拟”的?你的意思是缺乏必要的认知? – rlotun 2011-03-30 23:45:43
我的意思是,最好使用现有的队列实现,可能会处理最常见的问题和边缘情况,而不是自己实现一个。 – Elad 2011-03-31 07:18:20