モデル、ビュー、およびコントローラーが互いに独立していることは知っていますが、最初にリクエストを処理するコントローラーはどうですか?
myapp_cgi.pl
「配置サーバー」( 、myapp_fastcgi.pl
または)を変更する場合、コントローラー コードを変更する必要がありますmyapp_server.pl
か? または、構成ファイルなどで管理できますか?
これはあなたにはまったく関係ありません。Catalyst はPSGIに基づいているため、異なる展開環境間で非常に簡単に移動できます。
展開用に PSGI をサポートする別のサーバーを選択した場合、コントローラー コードを変更する必要はありません。
Catalyst::Manual::Deployment から:
Catalyst アプリケーションは、ほとんどの場合、FastCGI または mod_perl アプリケーションとしてデプロイされます (FastCGI が推奨されるオプションです)。ただし、Catalyst は PSGI 仕様に基づいているため、その仕様を実装する任意の Web ハンドラーを使用して Catalyst アプリケーションを実行できます。
展開オプションの詳細については、man Catalyst::Manual::Deployment::* を参照してください。
一般に、これは問題にはなりませんが、限界を押し上げて、Web ソケットのサポートやノンブロッキング書き込みなどの新しい半実験的な機能を使用している場合を除きます。その場合、イベント ループに固有のロジックになる可能性があります。あなたが選択します(ただし、少し努力すれば、それを外部コードに分離し、コントローラーを保持できるはずです(http://www.catalystframework.org/calendar/2013/14を参照)
Catalyst の次の安定バージョンでは、サーバーの選択に依存するストリーミング ファイル ハンドル コンテンツのサポートが改善されます (たとえば、twiggy を使用して AIO::IO を介してファイル ハンドルをストリームし、ノンブロッキング ストリームを提供しますが、Starman はそうしません)。 Starman はチャンク レスポンスをサポートします。したがって、一般的なケースではそれほど重要ではありませんが、エッジ カタリストをプッシュしている場合、基盤となるサーバーの容量に基づいてさまざまなことを行います。したがって、金属に到達すると、サーバーを失う可能性があります。不可知論。 --jnap