RabbitMQ在有消息需要传递给消费者时,会调用回调函数还是消费者必须轮询RabbitMQ客户端?
因此,在消费者方面,如果有一个PHP脚本,RabbitMQ能否调用它并将消息/参数传递给它。例如,如果在分片1上提交了评分,并且aggregateRating表位于分片2上,那么分片2上的RabbitMQ消费者是否会触发名为aggRating.php的脚本并传递在分片1中插入的参数?
RabbitMQ在有消息需要传递给消费者时,会调用回调函数还是消费者必须轮询RabbitMQ客户端?
因此,在消费者方面,如果有一个PHP脚本,RabbitMQ能否调用它并将消息/参数传递给它。例如,如果在分片1上提交了评分,并且aggregateRating表位于分片2上,那么分片2上的RabbitMQ消费者是否会触发名为aggRating.php的脚本并传递在分片1中插入的参数?
basic.consume
,它允许代理向客户端推送消息。但是,这些库的实现方式不同。大多数库都支持basic.consume
,但由于所用框架的固有限制,有些库不支持(尤其是很多其他客户端基于的官方RabbitMQ C客户端)。如果你的PHP库不支持basic.consume
,你只能使用轮询(不好),或者使用更完整的客户端之一来驱动脚本。例如,你可以编写一个Python或Java程序从代理中消费(因此,代理将传递交付给它们),并在接收到新消息时调用脚本。官方教程是AMQP API的很好介绍和入门指南。这种方法在大多数情况下都很有效,但需要与代理保持稳定的连接。