控制器逻辑是否依赖于Perl Catalyst中服务器的选择

时间:2013-10-29 09:41:16

标签: perl catalyst

我知道模型,视图和控制器是相互独立的,但是首先处理请求的控制器呢?

如果我要更改“部署服务器”(myapp_cgi.plmyapp_fastcgi.plmyapp_server.pl),或者可以通过配置文件管理等,是否需要更改控制器代码?< / p>

3 个答案:

答案 0 :(得分:1)

这根本不重要。 Catalyst基于PSGI,因此您可以非常轻松地在不同的部署环境之间移动它。

答案 1 :(得分:0)

如果您选择其他具有PSGI支持的服务器进行部署,则无需更改控制器代码。

来自Catalyst :: Manual :: Deployment:

  

Catalyst应用程序通常部署为FastCGI或mod_perl   应用程序(推荐使用FastCGI)。但是,作为   Catalyst基于PSGI规范,任何Web处理程序   实现该规范可用于运行Catalyst   应用

有关部署选项的更多信息,请阅读man Catalyst :: Manual :: Deployment :: *

答案 2 :(得分:0)

一般情况下,除非您正在推动优势并使用一些新的半实验性功能,例如Web套接字支持,非阻塞写入等,否则无关紧要。在这种情况下,您最终可能会得到特定于你选择的事件循环(尽管你需要付出一点努力才能将它与外部代码隔离开来,并保留你的控制器(参见http://www.catalystframework.org/calendar/2013/14

下一个稳定版本的催化剂将更好地支持流式文件句柄内容,这也将取决于服务器选择(例如,通过AIO :: IO流式文件句柄以提供非阻塞流,而Starman不会这样做(虽然Starman会支持分块响应)。所以一般情况是它并不重要但是如果你推动边缘催化剂会根据底层服务器容量做不同的事情。所以如果你得到了金属你可能会失去服务器无关性.-- jnap