0

Node.JS は、コードをライブ更新する機能と、例外を自動的に分離する機能に制限があるようです。どちらもJavaでは実質的にデフォルトです。

ライブ更新の非常に効果的な方法の 1 つは、子プロセスとの間の通信を単純にエコーするリスナー プロセスを使用することです。次に更新するために、リスナーは新しい子を起動し (更新されたコードを自動的に読み取ります)、新しい子へのリクエストの送信を開始し、すべてのリクエストが完了すると古い子を終了します。

  • stdout/stdin を介してこの http 機能を提供するシステムは既にありますか。
  • stdout/stdin を介して TCP サーバーまたは UDP サーバーの機能を提供するシステムはありますか。

つまり、基本的な I/O に stdout/stdin を使用することを除いて、 httporモジュールのように見えるモジュールを提供するということです。net

この CGI モジュールに似ている

一部のアプリケーションは、変更するだけで済みrequire('http')ますrequire('cgi')

私は似たようなことをするつもりです。コードが既に存在する場合は再利用し、小規模または単一目的の Web サーバーを、多くの Web アプリケーションを実行するこのリスナー レイヤーに簡単に変換したいと考えています。クリーンアップが適切に行われることが重要です。終了またはエラーの接続を解放し、終了/エラー イベント/コマンドを双方向で適切にエコーする必要があります。

(一般的な方法は、子にポートをリッスンさせ、親にそれらのポートと通信させることだと思いますが、stdout/stdin ソリューションの方が効率的だと思います)

4

2 に答える 2

0

これがあなたが探しているものであるかどうかはわかりませんが(実際、私があなたの質問を理解しているかどうかはわかりません)、 RemySharpはnodemonと呼ばれる非常に役立つノードモジュールを作成しました。「node.jsアプリケーションの変更を監視し、サーバーを自動的に再起動する」ことを約束します。これは、ライブアップデートコードの問題に役立つ場合があります。

于 2011-12-05T20:10:53.153 に答える
0

nginx ( HttpUpstreamModule ) またはHAProxyを使用します。どちらの場合も、それらをフロントで実行し、バックエンドをダウンとしてマークし、ライブ アップグレードが必要なときにバックエンドを元に戻します。

于 2011-07-25T17:57:03.993 に答える