0

EventMachine や Passenger など、Passenger に支えられた通常の HTTP サービスと一緒に EM ベースのサービスをデプロイする方法の例があります。HTTP コンポーネントは、HTTP サービス (nginx、apache) によってアクティブ化され、Passenger によってホスト/監視されます。このアクティブ化されたコンポーネントは、EM 処理を開始できます。

ただし、EM 専用ベースのサービス (UDP サーバー) を展開する方法についていくつかのアイデアを検討しています。HTTP に応答しないため、Apache/Nginx/Passenger 環境全体に存在しないもの。

通常、答えは「プロセスを立ち上げて EM ループを開始するだけ」ですが、apache/nginx/passenger の優れた機能 (init、start up、conf、logging、resource monitoring) を見逃したくありません。'ruby udp_server.rb' を init.d に配置するのは少し原始的で、実際の展開で障害 (暴走プロセスなど) が発生しやすいようです。

4

1 に答える 1

1

apache プロセスごとに個別の EM リアクターを実行しても問題ない場合は、次の行でイニシャライザーで単純に生成できます。

https://gist.github.com/eatenbyagrue/1338545

EM サービスをサーバーごとに 1 つにする必要がある場合は、それをデーモン プロセスとしてラップし、場合によっては init.d スクリプトまたは God を介して実行する必要があります。

https://www.ruby-toolbox.com/categories/daemonizing https://github.com/mojombo/god

または、Torquebox ( http://torquebox.org/ ) などのオールインワンのデプロイ ソリューションを使用してください。これには、長時間実行されるサービスの実行と管理のサポートが組み込まれています。

于 2013-11-13T09:39:56.667 に答える