Swiftcore SwiftiplyのMongrelサポート紹介


Swiftiplyは、バックエンドアプリケーションプロセスと永続的な接続を維持する特定のモードで動作する傾向がある.多くのRuby webフレームワークにはオリジナルのサポートはありませんが、Mongrelの操作にはサポートされています.SwiftiplyはMongrel 1.0.1のパッチバージョンをバンドルしており、このバージョンは永続的な接続を維持することができます.常備されたMongrel 1.0.1と同様に、すべてのMongrel 1.0.1で実行されるプログラムロジックが実行されるため、内在的に互換性があります.これまでIOWA,Rails,Camping,Merb,Ramaze(Rackを使用)とテストされてきた.
このバージョンのMongrelのブランチとして、Swiftiplyはまた、スレッドモードではなくEventMachineで実行されるイベント駆動方式で実行されるMongrelの2番目のバージョンを持っています.同様に、既存のMongrelプログラムと内在的に互換性があります(IOWA、Rails、Camping、Merb、Ramazeとテストしました).多くのアプリケーションでは、特に同時リクエストがある場合、より良いリクエスト処理スループットが提供されます.
これは,イベントベースの操作が要求を効率的に処理できるためであり,スレッドのオーバーヘッドがない先着サービスのモードに基づいている.典型的なRailsアプリケーションの場合、これは、各スレッドが個別の非同時要求を処理するため、要求処理がスレッドレベルのMongrelよりも少し速い可能性があることを意味する.しかし,コンカレントリクエストがあれば,両者の区別は急速に拡大する.ベンチマークテストプログラムの数値がその違いに感性を持っていることがわかります.
両方のバージョンのMongrelは、Mongrel 1.0.1にパッチを適用して実装されています.いずれかのバージョンを使用するには、require対応のライブラリのみを使用します.swiftiplied_の場合mongrel、これは1 require  "swiftcore/swiftiplied_mongrel"
そしてevented_mongrel、これは
view source
print ? 1 require  "swiftcore/evented_mongrel