首页 文章

AWS Elastic Beanstalk CRON作业设置

提问于
浏览
1

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

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

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

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

1 回答

  • 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 /文件(或者您在日程表中输入的任何内容) .

相关问题