如何允许多个连接到 Dancer2

How to allow multiple connections to Dancer2

我使用 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 时,在另一个选项卡中 link http://myhost.com/ 将不会显示任何内容,直到上一个 /compute 路由完成,这在我看来是一次只允许一个连接。问题是如何设置Dancer2服务器允许多个连接,即上面提到的两个选项卡可以同时运行?

非常感谢!

您如何部署 Dancer2 应用程序?如果您正在使用 plackup,那么您应该意识到 plackup 使用的默认服务器仅支持单个连接。但是您可以使用 -s 选项更改为 Starman, which supports multiple connections. See Dancer2::Manual::Deployment 之类的选项以获取更多详细信息。

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