こんにちは、
コンセプトをテストするためのフォークを作成しました。 Foremanを主に開発で使用して、Redis、Resqueワーカー、およびResqueスケジューラーを実行しています。 これらのワーカーとスケジューラーは、Redisの起動に依存しており、そのために失敗する場合があります。
https://github.com/rvanlieshout/foremanのバージョンは、Procfileでの依存関係の定義をサポートしています。 今のところ、親が開始できるようにするために5秒の遅延のみを使用します。 procfileは次のようになります。
mongodb: mongod --quiet --dbpath=db/mongo/
| redis: redis-server /opt/local/etc/redis.conf
| | worker: bundle exec rake environment resque:work QUEUE=* VERBOSE=1 RAILS_ENV=development
| | scheduler: bundle exec rake resque:scheduler QUEUE=* VERBOSE=1 RAILS_ENV=development
post_office: post_office --smtp 10025 --pop3 10110
(注:RedisはここではMongoに依存していません...単にデモンストレーションするためです)
「フォアマンスタート」が実行されると、最初にMongoとPostOfficeが起動し、5秒後にRedisが起動し、10秒後にワーカーとスケジューラが起動します。
このバージョンのForemanには下位互換性がありますが、他にもいくつかの問題/質問があります。
だから...あなたは以前に依存関係に関連する質問がありましたか? このソリューションは、Foremanの将来のバージョンに含まれる可能性があると思いますか?
そして...このプロジェクトに感謝します! これは、開発ワークフローの改善に本当に役立ちます。
割り当てられたポートにバインドされているかどうかを検出する以外に、何かが「準備完了」であるかどうかを判断する方法は実際にはありません。 すべてのプロセスがポートにバインドされるわけではありません。このかなり複雑な関係をフォアマンに導入したくありません。
気が向いたら、目的のプロセスを開始する前に、他の何かが利用可能になるのを監視するスクリプトでプロセスをラップすることができます。
乾杯、
デビッド
私はこれが大好きです:(-RTSPProxyプロセスとRTSPClientプロセスがたくさんあり、クライアントの起動を遅らせたいです。
まだ実装されていますか?