AWS SQS - 从CRON

时间:2016-10-21 01:16:38

标签: amazon-web-services cron message-queue amazon-sqs

我将AWS Elastic Beanstalk实例配置为Worker Environment。它有一个每x分钟运行一次的cron作业。在Worker Configuration中,我有一个php文件的路径,该文件在cron触发时运行。如果我转到SQS仪表板,我可以手动向该工作人员发送SQS消息以及设置实际消息,例如“hello”。

我的问题是,如何让php文件访问SQS消息的消息属性?

显而易见的答案是使用AWS \ SQSClient,但是阅读邮件的唯一方法是首先获取邮件。这里的问题是Elastic Beanstalk工作者代码已经检索了该消息。那么我现在如何阅读其属性呢?

修改

为了更清楚地说明我所描述的内容,我将详细介绍我的步骤,以便做到这一点。

  1. 我登录弹性豆柄并在我的应用程序中创建一个新环境。
  2. 我选择'创建新员工'
  3. 我配置了一个PHP实例
  4. 我为我的环境上传了一个新来源
    1. 源zip包含2个文件cron.yaml和someJob.php
    2. 请参阅下面的文件代码
  5. 我继续设置,直到进入“工人详细信息”部分。在这里我设置以下内容:
    1. 工作人员队列 - 自动生成的队列
    2. HTTP路径 - /someJob.php
    3. MIME类型 - 默认
    4. HTTP连接 - 10
    5. 可见性超时 - 300
  6. 我让环境构建
  7. 在构建期间,会自动生成自动生成的SQS消息和死信队列
  8. 一旦完成,环境就会一直存在,直到达到第一个cron作业时间
  9. 以某种方式将消息发送到自动生成的SQS消息队列
  10. someJob.php运行
  11. 邮件显然已被删除
  12. 的Cron:

    version: 1
    cron:
     - name: "Worker"
       url: "someJob.php"
       schedule: "0 * * * *" 
    

    PHP:

    psuedo
    <?send me an email, update the db, whatever?>
    //NOTE: I don't even connect to the AWS file or perform ANY SQS actions for this to work
    

    现在我的问题是,如果我转到自动生成的SQS队列,我可以选择它,转到队列操作,转发消息,然后发送一个实际的消息字符串...例如“Hello”。

    我是否可以访问消息消息值“Hello”,即使我的PHP不负责从SQS调用消息?显然,我需要调用AWS lib和相关的SQS命令,但我能做的唯一命令是“receiveMessage”,我假设它会从当前收到的“Hello”消息中提取新消息而不是信息。

    请注意,发送“Hello”消息也会调用someJob.php来运行。

0 个答案:

没有答案