Aws Elastic Beanstalk 不执行 cron.yaml 文件

Posted

技术标签:

【中文标题】Aws Elastic Beanstalk 不执行 cron.yaml 文件【英文标题】:Aws Elastic Beanstalk not executing cron.yaml file 【发布时间】:2020-10-02 20:47:24 【问题描述】:

我目前在项目的根目录中有一个文件 cron.yaml。

version: 3
cron:
 - name: "shopify"
   url: "/shopify"
   schedule: "0 * * * *"
 - name: "quickbooks"
   url: "/qb'"
   schedule: "0 * * * *"
 - name: "Shopify-Completed"
   url: "/shopify-completed"
   schedule: "0 * * * *"
 - name: "License-Orders"
   url: "/getLicenseOrders"
   schedule: "0 * * * *"
 - name: "Tee-Orders"
   url: "/getTeesOrders"
   schedule: "0 * * * *"
 - name: "Engraved-Orders"
   url: "/getEngravedOrders"
   schedule: "0 * * * *"
 - name: "Engraved-Mexico-Orders"
   url: "/getMexicoEngravedOrders"
   schedule: "0 * * * *"
 - name: "Shopify-All-Orders"
   url: "/pull-shopify-orders"
   schedule: "*/10 * * * *"

这些都是我项目中经过验证的路线。 例如,当我手动转到 example.com//pull-shopify-orders 时,它会执行。 但是,当它在 cron 中时,它不会触发。 知道为什么吗?

【问题讨论】:

你运行的是worker环境还是web one? 网络一@Marcin 另外,请确保您的路线响应 POST。 【参考方案1】:

cron.yaml 仅支持worker environments:

您可以在源包中名为 cron.yaml 的文件中定义定期任务,以定期自动将作业添加到您的工作环境的队列中。

对于网络环境,您必须使用.ebextentions“手动”设置 cron。这在最近的 AWS 博客文章中得到了证明:

How do I create cron jobs on Amazon EC2 instances in Elastic Beanstalk environments?

这涉及创建带有定义的files 和commands 部分的cron-linux.config(示例名称)文件。

【讨论】:

以上是关于Aws Elastic Beanstalk 不执行 cron.yaml 文件的主要内容,如果未能解决你的问题,请参考以下文章

仅在 AWS Elastic Beanstalk 网站上部署更改的文件

将 Docker 部署到 AWS Elastic Beanstalk:无法执行命令“docker pull maven”

AWS Elastic Beanstalk - PHP 脚本在部署新版本后无法执行

AWS Elastic Beanstalk 命令不返回任何输出

无法在 AWS Elastic Beanstalk 中创建环境?

使用 Dockerrun.aws.json 和 Elastic Beanstalk 命名 Docker 容器