Amazon web services 删除弹性豆茎Cron
我正在使用elastic beanstalk的cron.yaml来触发定期任务。不过,如果我重新部署代码,cron就会被解雇两次,效果非常好。再次部署,任务将被触发3次,等等。如何删除现有的cron,以便在部署时只有一个cron实例 您可以使用Amazon web services 删除弹性豆茎Cron,amazon-web-services,cron,amazon-elastic-beanstalk,Amazon Web Services,Cron,Amazon Elastic Beanstalk,我正在使用elastic beanstalk的cron.yaml来触发定期任务。不过,如果我重新部署代码,cron就会被解雇两次,效果非常好。再次部署,任务将被触发3次,等等。如何删除现有的cron,以便在部署时只有一个cron实例 您可以使用.ebextensions来定义在每个实例上运行的命令,并使用leader\u only:true将这些命令限定为仅在一个实例上运行,而不是使用cron.yaml将cron作业添加到所有部署的EB实例中 例如: .ebextensions/01\u set
.ebextensions
来定义在每个实例上运行的命令,并使用leader\u only:true
将这些命令限定为仅在一个实例上运行,而不是使用cron.yaml
将cron作业添加到所有部署的EB实例中
例如:
.ebextensions/01\u setup\u cron.config
container_commands:
01_some_cron_job:
command: "cat .ebextensions/your_cron.txt > /etc/cron.d/your_Cron && chmod 644 /etc/cron.d/your_cron"
leader_only: true
.ebextensions/your_cron.txt
* * * * * root /usr/bin/do-something.sh
# Don't forget to put a blank new line at the end of the cron - cron won't work without it
这将仅为一个实例(leader实例)将cron文件复制到/etc/cron.d/
,这意味着您的cron只运行一次。答案如下:
Cron任务是通过SQS队列实现的。如果cron.yaml中的端点返回的不是200,则触发消息将保留在队列中,并将反复重试
一旦确定所有cron端点返回200,清除队列,冗余调用将停止