AWS Elastic Beanstalk CRON 作业设置

Posted

技术标签:

【中文标题】AWS Elastic Beanstalk CRON 作业设置【英文标题】:AWS Elastic Beanstalk CRON jobs setup 【发布时间】:2017-04-20 13:27:39 【问题描述】:

我一直在努力在 AWS Elastic Beanstalk 上设置一些 CRON 作业。我已经很好地设置了我正在部署的应用程序的其余部分,但在这一点上真的卡住了。

我创建了一个 cron.yaml 文件,然后在应用程序中创建了一个新的工作环境。该工作人员将加载 YAML 文件,并将运行 CRON 作业。但是,它会在新的工作环境中查找 php 文件(作业的目标),它们显然不存在,而是在主 Web 环境中。所以一切都会在日志中返回 404 错误。

YAML 不会在 web 服务器环境中运行,因此解决方案并不像将它移到那里那么简单(除非有人知道一些技巧)。

有没有一种简单的方法可以使用 YAML 文件在生产环境中运行 CRON 作业?我错过了什么吗?这是我第一次使用这个平台,我习惯了这些东西相当简单;通常在一分钟内设置在主机上,仅此而已。任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

目前,我一直在使用一种解决方法,我运行一个工作环境,该环境调用 PHP 文件,而这些文件又使用 file_get_contents();在生产环境中调用可公开访问的 PHP 文件。似乎可行,但我现在也将此 EB 设置保持为单个实例,因为我不知道如果这是一个多实例设置会发生什么。

如果有人希望使用此解决方法,以下是您的工作环境的示例代码:

cron.yaml

version: 1
cron:
 - name: "your_process_name_here"
   url: "/process_file.php"
   schedule: "*/5 * * * *"

process_file.php

<?php
echo file_get_contents("http://your_public_URL.com/actual_php_file.php");
?>

上述两个文件,在上传到工作类型环境后,将调用您每 5 分钟设置一次的 URL/文件(或您在计划中输入的任何内容)。

【讨论】:

以上是关于AWS Elastic Beanstalk CRON 作业设置的主要内容,如果未能解决你的问题,请参考以下文章

AWS Elastic Beanstalk CLI 安装错误

text AWS Elastic Beanstalk

HTTPS Elastic Beanstalk (AWS) 到 Android

AWS Elastic Beanstalk 无法担任角色

AWS Elastic Beanstalk

AWS Elastic Beanstalk chown PythonPath 错误