如何正确使用AWS SQS

时间:2019-07-22 18:13:04

标签: php mysql amazon-web-services amazon-sqs

我一直在寻找一种管理许多后台任务的好方法,并且发现了AWS SQS。

我的软件使用PHP编码。要完成后台任务,工作程序必须是CLI PHP应用程序。

我如何考虑将其与AWS SQS相结合:

  • 客户端创建一条消息(消息=任务)
  • 消息已添加到Mysql DB
  • Cron作业检查mysql db中是否有消息,并将它们添加到SQS队列中
  • SQS队列守护程序侦听消息队列,并在收到消息时向工作人员发送HTTP POST请求
  • 工作人员收到POST请求,并派生带有参数的php shell_execute来完成工作

有必要在MySQL中插入消息,因为它们计划在某个时间完成

有些复杂。

我需要知道什么是最好的方法。

1 个答案:

答案 0 :(得分:0)

我将使用带有SQS触发器的AWS Lambda,以异步处理队列中丢弃的消息。

首先,您的应用程序可以将消息直接发布到SQS,无需先在MySQL中插入消息,也不需要单独的守护程序来填充队列。

第二,您可以用PHP编写一个AWS Lambda函数,选中https://aws.amazon.com/blogs/apn/aws-lambda-custom-runtime-for-php-a-practical-example/

第三,我将按照以下文档将Lambda函数连接到队列:https://aws.amazon.com/blogs/apn/aws-lambda-custom-runtime-for-php-a-practical-example/

这将简化您的体系结构(减少活动部件,减少代码),并使它更具可伸缩性。