如何通过SQS将任务从EC2卸载到工作人员

时间:2015-05-11 21:47:36

标签: php amazon-web-services amazon-sqs aws-sdk amazon-elastic-beanstalk

我有一个Elastic bean EC2 with Worker setup(我将它用于定期任务)。根据我的理解,周期性任务在SQS&由工作人员阅读并作为http://localhost HTTP帖子执行到我们在cron.yaml

中设置的网址
 - name: "db-backup"
   url: "/cron/db-backup"
   schedule: "30 21 * * *"

我们如何使用AWS SDK实现这一目标?我只能看到QueueUrlMessageBody。如何指定网址路径,即/cron/db-backup

$client->sendMessage(array(
   'QueueUrl'    => $queueUrl,
   'MessageBody' => 'Hello World!',
));

我应该在哪里指定路径/cron/db-backup?或者我的概念错了吗?

1 个答案:

答案 0 :(得分:0)

事实证明我部分正确。您无法为发布到队列的各个邮件设置HTTP路径,但您可以&为您实现代码流的调度逻辑的所有消息设置一个公共路径。

您在配置工作人员层和设置时设置此项可以随时从Worker配置部分更改。

Worker configuration

如果您将MIME类型设置为 application / json ,则可以从 file_get_contents('php:// input')&获取有效负载。如果 x-www-form-urlencoded ,它将为$ _POST

听起来很简单,考虑到在作为周期性任务工作时我可以使用多个http路径(url),我完全迷失了。我希望这对其他人也有帮助。