1

私は、さまざまなタスクを実行するためにバックグラウンドで常に実行されるプログラムを C++ で作成しています (デーモン)。
通常のタスクとは別に、Web アプリケーションはそれと通信する必要があります (COMET パターンを実行する際の AJAX 要求 = 開いているがスリープ状態の接続が多数)。

問題は、Web サーバーにどのように接続すればよいか (apache と lighttpd が関連しています) ということです。

私が読んだ FastCGI はそのタスクにとって非常に興味深いものですが、私が読んだすべての参考文献は、必要に応じて FastCGI アプリケーションを開始する Web サーバーについて述べていました。デーモンがすでに実行されているため、これはここでは機能しません...

また、Web サーバーがソケットを介して FastCGI アプリケーションと通信することも読みました。これがエントリ ポイントになる可能性があり、デーモンはそのようなソケットと通信するだけで済みます。

しかし、そのために利用できる優れたライブラリはありますか? http://cppcms.com/wikipp/en/page/main
の機能を見ると、私にとって非常に興味深いように見えますが、私の場合はうまくいくでしょうか? そして、それを取り除くことができますか-SQL接続を提供することさえ、私の場合には重すぎます...

それで、あなたは私にどんなアドバイスをすることができますか?

PS: パフォーマンスに関しては、デーモン <-> Web サーバー グルーにはシングル スレッドであるが非同期の実装が機能すると考えています。

4

1 に答える 1

1

FastCGI は、Web サーバーと通信するための標準プロトコルです。上記のすべての Web サーバーは、fastcgi を介してリモートのデーモン アプリケーションと通信できます。

http://cppcms.com/wikipp/en/page/cppcms_1x_tut_web_server_config

また、CppCMS がネイティブに提供する Comet サポートを探している場合:

http://blog.cppcms.com/post/107

そして、それを取り除くことができますか-SQL接続を提供することさえ、私の場合には重すぎます...

CppCMS ライブラリは非常に小さく、サイズを縮小することもできます。

http://cppcms.com/wikipp/en/page/cppcms_1x_build#Build.Options

また、SQL 接続 CppDB は独立した部分です。

パフォーマンスに関しては、単一のスレッド化された非同期実装がデーモン <-> Web サーバーの接着剤で機能することを認識しています。

これは、標準の CppCMS 実行モードの 1 つで、非同期 Web アプリケーションを実行します。

アップデート:

私が読んだ FastCGI はそのタスクにとって非常に興味深いものですが、私が読んだすべての参考文献は、必要に応じて FastCGI アプリケーションを開始する Web サーバーについて述べていました。デーモンがすでに実行されているため、これはここでは機能しません..

実際、一部の Web サーバーは高速な CGI アプリケーションを起動しますが、次のようになります。

  • Lighttpd を使用すると、FastCGI と SCGI アプリケーションの両方を開始したり、独立したアプリケーションに接続したりできます
  • Cherokee (AFAIR) を使用すると、FastCGI と SCGI アプリケーションの両方を開始したり、独立したアプリケーションに接続したりできます
  • アパッチ:

    • mod_fascgiFastCGI アプリケーションを開始するか、独立したアプリケーションに接続することができます
    • mod_scgi独立したアプリケーションに接続します - アプリケーションを起動しません。
    • mod_fcgid常にアプリケーションを起動します - あなたには合いません

    また、一般的な注意として、Apache は接続ごとにスレッド (または mpm に依存するプロセス) を使用するため、多くのアイドル状態の接続で動作するパターンには適していません。

  • Nginx - アプリケーションをまったく起動しませんが、fastcgi では現在、バッファリングのためにコメット ストリーミングに最適ではないため、SCGI は nginx を使用する方が適しています (最新の nginx バージョンを使用していると仮定します)。

注: SCGI はFastCGI と非常によく似たプロトコルですが、はるかに単純です。

于 2012-08-20T19:55:12.173 に答える