我正在尝试设置托管在 EB 上的应用程序,并使用一个工作程序运行一些基本的 cron 作业,以向 RDS 数据库提供应用程序使用的数据。
我cron.yaml
首先部署的是这个:
version: 1
cron:
- name: "count"
url: "/api/dostuff"
schedule: "* * * * *"
- name: "fetch"
url: "/api/dootherstuff"
schedule: "*/10 * * * *"
这让我的工人出现了严重的健康问题
100.0 % of the requests are erroring with HTTP 4xx.
登录到我的工作 ec2 实例后,我在 access_log 中注意到了这一点
127.0.0.1 (-) - - [23/May/2016:08:54:13 +0000] "POST /api/dostuff HTTP/1.1" 404 207 "-" "aws-sqsd/2.3"
所以显然它没有找到端点。我以为工作人员与我的主应用程序交互并尝试轮询它。但我可能是错的?
/api/dostuff
无论如何,为了进一步测试,我从主应用程序中取出一些东西/api/dootherstuff
,并将其与工作层一起部署。现在,EB 仪表板上的运行状况显示为绿色,这很好。
但是当我检查我的 RDS 时(顺便说一下,我将工作层放在与我的 RDS 相同的安全组中,并且也放在相同的 VPC 中)。它尚未用新数据填充数据库。因此,我登录实例并检查了 access_log,其中充满了
127.0.0.1 (-) - - [23/May/2016:09:53:41 +0000] "POST /api/dostuff HTTP/1.1" 301 235 "-" "aws-sqsd/2.3"
我的意思是,它每秒都在轮询这些东西。
我将 WorkerQueue 的最大接收数量设置为 1000,因为我不需要死信。
我做错了什么?如何正确设置我的 cron 任务?