1

Rails2.0.2アプリケーションをpostgresqlデータベースで実行しています。マシンはTCPポートでデータを受信します。リクエストを受信するために動作するrubyマルチスレッドtcpサーバーをすでにコーディングしましたが、Railsアプリと一緒に実行するにはこのコードが必要です。

したがって、Rails内で新しいプロセスにまたがる方法、またはスレッド化されたtcpサーバーループを実行するワーカースレッドを作成する方法を知る必要があると思います。私のrubytcpサーバーはActiveRecordにアクセスできますが、必須ではありません(httpリクエストを作成し、受信したデータを元のRailsサーバーに投稿できます)

4

3 に答える 3

1

なぜ物事を複雑にするのですか?アプリケーション(TCPサーバーとRailsアプリケーション)を並べて実行するだけです。

モデル層(およびActiveRecord)をTCPサーバーにプルして(svn :: externalsまたはPistonが適切に機能する場合があります)、データベースを介して2つのアプリケーション間の通信を行うか、Railsアプリケーションを「マスター」にしてあなたが提案するようにHTTP経由でそれと通信します。

RubyアプリケーションをWindowsサービスに変換するには、プロジェクト win32-serviceから入手できるgemを参照してください:http: //rubyforge.org/projects/win32utils/win32utils

于 2008-09-25T00:24:18.707 に答える
0

Windows 2003 サーバーでサービスとして実行するには、tcp サーバーが必要です。私は mongrel_service を使用して Rails をサービスとしてロードしていますが、純粋な Ruby コードで同じことを行う方法がわかりません。コンピューターの起動時に tcp サーバーを起動できる場合は、解決策を検討します (それでもかなり良いようです)。

于 2008-09-25T01:38:42.540 に答える
0

Rails アプリで TCP サーバー アプリの状態を管理しないでください。それを行うのにはあまり適していません。おそらく、互いに完全にロックステップで開始する必要がある理由はありません。monit などを使用して、両方のサーバー プロセスを監視します。

アプリのアーキテクチャを詳しく知らずに断言することはできませんが、HTTP の代わりに ActiveRecord とデータベースを使用してサーバー間の通信を行うことをお勧めします。これにより、Rails アプリが何らかの理由でダウンした場合でも、他のサーバーは引き続きリクエストを処理できます。また、おそらく少しきびきびするでしょう。

于 2008-09-25T22:53:31.383 に答える