【问题标题】:How to allow multiple connections to Dancer2如何允许与 Dancer2 的多个连接
【发布时间】:2017-10-01 08:01:51
【问题描述】:

我使用 Perl Dancer2 作为带有基本设置的 RESTful 服务框架(使用命令

dancer2 -a MyWeb::App

生成模板文件并在自动生成的 MyWeb-App/lib/MyWeb/App.pm 文件中添加“get”路由)。最近我发现当一个请求需要很长时间才能完成时,服务器被锁定为只处理该请求。例如

get '/' => sub {# simple request to redirect to a static page
    template 'index'; #template directive Templates all go into the views/
};
get '/compute' => sub{
    for (my $i=0;$i<1000000;$i++){
         wait(1000);  #simulate long computation time 
    }
    return "Done!";
};

当第一次在一个选项卡中输入 http://myhost.com/compute 时,在另一个选项卡中链接 http://myhost.com/ 将不会显示任何内容,直到前一个 /compute 路由完成,在我看来,一次只允许一个连接。问题是如何设置 Dancer2 服务器以允许多个连接,即上面提到的两个选项卡可以同时运行?

非常感谢!

【问题讨论】:

标签: perl dancer


【解决方案1】:

您如何部署 Dancer2 应用程序?如果您使用plackup,那么您应该意识到plackup 使用的默认服务器仅支持单个连接。但是您可以使用-s 选项更改为支持多个连接的Starman 之类的内容。详情请见Dancer2::Manual::Deployment

如果不是这样,那么您需要告诉我们更多关于您的申请的信息。请求是否有可能因为都需要访问某些共享资源而被阻塞?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-16
    • 2021-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-12
    • 2019-10-22
    相关资源
    最近更新 更多