Rails サーバーに送信する必要がある大量のデータを常に生成している C++ プログラムがあります。プログラムとサーバーの両方が、Suse Linux を実行している同じマシン上にあります。
これに対する最も効率的でシンプルなソリューションは何ですか?
Rails サーバーに送信する必要がある大量のデータを常に生成している C++ プログラムがあります。プログラムとサーバーの両方が、Suse Linux を実行している同じマシン上にあります。
これに対する最も効率的でシンプルなソリューションは何ですか?
データを好きなように保存できます(ファイルまたはデータベース)。
唯一の難しい点は、RailsアプリにC++プログラムが完了したことを認識させることです。
必要な期間ごとにこれをチェックするのにそれほど費用がかからないように、この情報をキャッシュに保存することを強くお勧めします。
両方のプログラムが同じローカル マシン上にあるため、ソケットを使用できます。一般に、シリアル化されたデータをローカル ソケット経由で送信するのは非常に簡単です。ソケットは内部バッファを使用しているため、転送時間は非常に高速です。C++ プログラムはデータを Rails サーバーにプッシュするか、C++ プログラムにキャッシュを設定してポーリング呼び出しの間にデータを格納する場合、Rails サーバーに C++ プログラムをポーリングさせることができます。ただし、プッシュ方式がおそらく最も効果的です。
ソケットは行く方法です。C++ でいくつかの優れた非同期およびクロスプラットフォーム ソケットが必要な場合は、おそらく、boost::asio を使用することをお勧めします。