2011-07-25 7 views
0

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

LiveUpdateの非常に効果的な方法の1つは、子プロセスとの間で通信を単にエコーするリスナー処理を行うことです。次に、更新するために、リスナーは新しい子を起動し(更新されたコードを自動的に読み取ります)、要求を新しい子に送信し始め、すべての要求が完了したら古い子を終了します。

  • このhttp機能をstdout/stdinを通じて提供するシステムは既に存在しますか?
  • stdout/stdinを使用してTCPサーバーまたはUDPサーバーの機能を提供するシステムはありますか。これにより

私はそれが根本的なI/O用の標準出力/標準入力を使用していることを除いてhttpまたはnetモジュールのように見えるモジュールを提供し、意味。私は似た何かをするつもりrequire('http')

require('cgi')に似

This CGI moduleにいくつかのアプリケーションのみを変更する必要があります。すでにそこにある場合はコードを再利用し、小さなまたは単一の目的のWebサーバーを、多くのWebアプリケーションを実行するこのリスナーレイヤーに簡単に変換することを望みます。クリーンアップが適切に行われることが重要です。終了またはエラーの接続を解放し、終了/エラーのイベント/コマンドを両方向に正しくエコーする必要があります。

(私は一般的な方法は、子供たちがポートで待機し、親がこれらのポートと通信持つことであると信じて、私はSTDOUT/STDINソリューションは、より効率的になると思う)

答えて

0

使用nginxHttpUpstreamModule)またはHAProxy 。どちらの場合も、バックエンドをフロントで実行し、バックエンドをダウンとしてマークしてから、ライブアップグレードを行う必要があるときにバックアップします。

+0

私はそれを考慮しますが、それが私たちの構造にうまく収まるかどうかはわかりません。もちろん、それぞれが特定のドメイン/パス上で独自の制御を持つ複数のバックエンドをサポートする必要があります。 –

0

私はこれがあなたが探しているものであるとは確信していませんが、確かに私はあなたの質問を理解しているとは確信していませんが、Remy Sharpはnodemonという非常に有益なノードモジュールを書いています。 「node.jsアプリケーションの変更を監視し、自動的にサーバーを再起動する」と約束しています。これは、ライブ更新コードの問題を助けるかもしれません。

関連する問題