AWS两个SQS队列发送到一个工作进程

8
我有一个应用程序,可以发送电子邮件并执行文件上传(以及图像调整大小)。这两个服务都不经常使用,而且非常轻量级。我已经使用SQS队列将消息(电子邮件的收件人/主题/正文)发送到运行Sinatra应用程序调用SES API的工作程序,这很好地运行着。我的问题是:是否可能将文件上传消息发送到同一工作程序?这可能在不同的队列上进行。似乎让两个EC2实例闲置着相当浪费。PS:我正在使用弹性Beanstalk。

我已经在使用SQS队列将消息(电子邮件收件人/主题/正文)发送到运行Sinatra应用程序调用SES API的工作程序,这个过程运行良好。您愿意分享这段代码吗?我一直在苦苦挣扎,找不到任何示例。 - pingu
2个回答

10

最好在您的消息中引入一个属性TYPE。消息类型可以是EMAIL / FILEUPLOAD。根据属性TYPE,工作者可以使用相应的服务来调用消息。

通过上述方法,您将能够使用一个工作者和一个队列处理消息。您还可以自动缩放服务器,并且处理多个工作者的消息时不会出现任何问题。


啊,是的,我大约5分钟前也有一个类似的计划,很高兴知道其他人也在考虑这个!谢谢。 - Mark Kenny

0

当然,为什么不是我的初步答案。实例内部的内容完全由您控制和决定。鉴于您已经指定了应用程序/服务器利用率相当轻松; 您可以将其他应用程序放入同一位置。

只需确保在两个应用程序位于同一实例时,给定的实例大小足够大; 应用程序域(2个应用程序),应用程序配置不会相互干扰。

附注:您将为新应用程序使用单独的队列;如果您需要在队列中发送图像,则可以将图像上传到S3并在SQS消息项中放置其各自的链接以进行处理。


谢谢,我忘了提到我正在使用弹性 Beanstalk。这个模型似乎不太愿意做这种事情。也许我应该手动创建自己的 EC2 实例。 - Mark Kenny

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接