在php进程中唯一分配队列的最佳方法

时间:2017-01-13 12:27:53

标签: php queue rabbitmq

我有一组独特的值,我想给每个请求一个。

每个值只能分发一次。订单并不重要。 我正在寻找一个很好的工具来做到这一点。

我一直在考虑将MySQL与SELECT .. LIMIT 1 FOR UPDATE一起使用。 Works,有没有办法选择一个未锁定的行而不是等待第一次锁定释放?

我尝试过使用rabbitmq,将每个请求注册为只消费一条消息的消费者,但这种方法很慢。通过WAN几乎一秒钟。

1 个答案:

答案 0 :(得分:1)

来自评论

  

连接[到RMQ]

时似乎有一些延迟
是的,肯定有!在某些情况下,我已经看到连接需要5到10秒或更长时间。

但我们应该管理RabbitMQ的方式是为每个应用程序实例建立一个打开的连接 - 在应用程序实例启动时打开它,并将其永久打开。

当我们需要做工作时,创建一个可以完成工作的渠道。

与连接不同,

渠道便宜且打开和关闭速度非常快。