Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 删除弹性豆茎Cron_Amazon Web Services_Cron_Amazon Elastic Beanstalk - Fatal编程技术网

Amazon web services 删除弹性豆茎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

我正在使用elastic beanstalk的cron.yaml来触发定期任务。不过,如果我重新部署代码,cron就会被解雇两次,效果非常好。再次部署,任务将被触发3次,等等。如何删除现有的cron,以便在部署时只有一个cron实例

您可以使用
.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,清除队列,冗余调用将停止