0

我已经建立了一个Elastic Beanstalk服务器,工作层。它有一个cron.yaml为每小时运行任务,像这样:如何模拟在Elastic Beanstalk服务器上发送定期任务?

version: 1 
cron: 
- name: "broadcast-users" 
    url: "/broadcast" 
    schedule: "0 * * * *" 

我知道,它通过SQS发送消息给然后把它通过这条路线拿起工人队列的作品 - 但我不”不知道这个消息是什么样的。我希望能够轻松测试cron工作,而无需等待预定的时间。

是否有人从SQS的消息看起来像启动这个cron工作? (或者我如何检查发送给SQS的消息内容?)

谢谢!

回答

0

您应该能够使用SQS控制台查看消息的内容。该消息可能会在死信队列中结束。

话虽这么说,邮件内容应该是这样的:

{ "taskurl": "broadcast", "taskname": "broadcast-users" } 

您还可以使用SQS控制台手动发送消息:

  • 选择合适的队列中。
  • 从“队列操作”下拉列表中选择“发送消息”。
  • 输入JSON消息正文(如{ "taskurl" : "broadcast", "taskname" : "broadcast-users" }),然后单击“发送消息”。

在您的控制器中,您可以查看X-Aws-Sqsd-Taskname标题以确定调用哪个任务。

+0

我的工作人员都在/ worker路由处理SQS消息,并在/ broadcast路由处接收cron任务。当我尝试发送该消息时,它被/ worker路由收到。 JSON中是否有属性将它发送给/ broadcast? (也许我误解了cron处理的工作方式,也许它根本不会从SQS触发?) –

+0

如果通过SQS控制台手动发送消息,它将被发送到您在ElasticBeanstalk中配置的任何端点。在'cron.yaml'中定义的任务可以通过'url'参数发送到任意端点。 – Brian

相关问题