2016-12-06 143 views
1

我一直在努力在AWS Elastic Beanstalk上设置一些CRON作业。我已经安装了我正在部署的应用程序的其余部分,但确实在这一点上停滞不前。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 /文件(或任何您在计划中输入的内容)。