2016-12-06 9 views
1

私はAWS Elastic BeanstalkでいくつかのCRONジョブをセットアップするのに苦労しています。私は、私はちょうどうまく配置しているが、実際にこの時点で立ち往生しているアプリケーションの残りの部分をセットアップしました。AWS Elastic Beanstalk CRONジョブの設定

私はcron.yamlファイルを作成し、アプリケーション内に新しいワーカー環境を作成しました。この作業者はYAMLファイルをロードし、CRONジョブを実行します。しかし、新しいワーカー環境内でPHPファイル(ジョブのターゲット)を探しますが、明らかにそこにはなく、メインのWeb環境にあります。だから、すべてがログに404エラーで戻ってきます。

YAMLはWebサーバー環境では動作しないため、解決策は誰かが知っていることがない限り、そこに移動するのと同じくらい単純ではありません。

生産環境でCRONジョブを実行するためにYAMLファイルを使用する簡単な方法はありますか?何か不足していますか?これは私の初めてのこのプラットフォームを使用しており、私はこれらのことをかなりシンプルにすることに慣れています。通常は1分以内にホスト上にセットアップしてください。どんな助けでも本当に感謝しています。

答えて

1

当面は、PHPファイルを呼び出すworker環境を実行する回避策を使用しています。この環境では、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 /ファイルが呼び出されます。

関連する問題