Flask アプリで必要なエラスティック Beanstalk でヒューイタスク キューを実行しようとしています。しかし、huey をデーモン プロセスとして実行する組み込みの方法はありません。huey の作成者は、huey をスーパーバイザー(このリンク) で実行することを勧めています。エラスティック Beanstalk は既にスーパーバイザーを使用しているため、スーパーバイザーによって管理されるプログラムを追加するだけでよいと考えました。しかし、これをプログラムで行う方法がわかりません。現在、構成ファイルでcontainer_commands
( ref link ) キーを使用してこれを実行していますが、エラスティック Beanstalk はフォアグラウンドで実行されるため、しばらくするとタイムアウト エラーが発生します。以下は、私が使用している設定ファイルです。
packages:
yum:
gcc: []
gcc-c++: []
gcc-gfortran: []
htop: []
make: []
wget: []
atlas-devel: []
lapack-devel: []
commands:
01enable_swap:
command:
- sudo dd if=/dev/zero of=/var/swap1 bs=1M count=1024
- sudo mkswap /var/swap1
- sudo chmod 644 /var/swap1
- sudo swapon /var/swap1
cwd: /home/ec2-user
02install_redis:
command:
- wget "http://download.redis.io/redis-stable.tar.gz"
- tar -xvzf redis-stable.tar.gz
- rm redis-stable.tar.gz
- cd redis-stable
- sudo make
- sudo make install
cwd: /home/ec2-user
container_commands:
01download_nltk_packages:
command: "python install_resources.py"
02run_redis:
command: "redis-server --host 127.0.0.1 --port 6379 --daemonize yes"
03run_huey:
command: "huey_consumer jupiter.huey"
Here's what I want to achieve:
1. huey should run as a background process when my Flask app is deployed.
2. supervisor should handle automatic start/stop of the huey process.