2012-10-02 51 views
0

有没有办法为SQS编写Php消费者,而不必定期轮询新消息?使用Php从AWS SQS获取消息而无需轮询

消耗我迄今发现使用receive_message() API调用它需要使用定期轮询来实现他们获取信息的唯一途径。

虽然它应该工作,但它似乎仍然是错误的。

回答

2

,让SQS规模这么好神奇的是相对于其他消息传递系统,它提供了非常少的特点。用户必须:轮询消息;处理不按顺序发送的消息;处理不止一次交付的消息;处理消息传递中的偶尔非常大的延迟(如50秒)。

这对某些任务很好,对其他人绝对不可用。我花了很长时间试图去实现它,但我真的认为亚马逊应该在他们的文档中更清楚地警告你,不仅仅是它是什么,而且也不是。我结束了与RabbitMQ,并不能更快乐 - 但是,有一点我需要处理扩展它。

+0

我想使用SQS的唯一原因是我可以将SNS消息转发给SQS。 –

4

我知道这是一个很老的问题,但只是想指出这一点对未来的读者。

SQS用于轮询,但如果您需要推送解决方案,则可以在AWS SQS面板上选择“队列选项”,然后选择“订阅SNS主题”。

显然在做这件事之前做一个SNS话题。您可以将主题设置为在每次发生事件时自动向URL发送请求,实质上将其转化为推送。

祝你好运!