2016-12-06 208 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 /文件(或任何您在計劃中輸入的內容)。