AWS Elastic Beanstalk CRON作业设置

时间:2016-12-06 01:32:11

标签: php amazon-web-services cron

我一直在努力在AWS Elastic Beanstalk上设置一些CRON作业。我已经设置了我部署的其他应用程序,但实际上已经停留在这一点上。

我创建了一个cron.yaml文件,然后在app中创建了一个新的worker环境。该worker将加载YAML文件,它将运行CRON作业。但是,它在新的工作环境中查找PHP文件(作业的目标),它们显然不存在,而是在主Web环境中。所以一切都会在日志中出现404错误。

YAML不会在Web服务器环境中运行,因此解决方案并不像在那里移动那样简单(除非有人知道某些技巧)。

是否有一种简单的方法可以使用YAML文件在生产环境中运行CRON作业?我错过了什么吗?这是我第一次使用这个平台,我习惯这些东西很简单;通常在一分钟内安装在主机上,这就是全部。任何帮助都会非常感激。

1 个答案:

答案 0 :(得分: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 /文件(或者您在日程表中输入的任何内容)。