【发布时间】:2016-02-01 01:49:23
【问题描述】:
当路由回调花费太长时间时,mojolicious 似乎会请求该路由两次,例如在此应用中:
#!/usr/bin/env perl
use Mojolicious::Lite;
get '/' => sub {
my $c = shift;
$c->render_later;
sleep(15);
say "got here";
$c->render(template => 'index');
};
当我请求一次“/”路由时,这就是我在日志中得到的:
[Sun Jan 31 20:53:17 2016] [debug] Your secret passphrase needs to be changed
[Sun Jan 31 20:53:17 2016] [debug] GET "/"
[Sun Jan 31 20:53:17 2016] [debug] Routing to a callback
got here
[Sun Jan 31 20:53:32 2016] [debug] Rendering template "index.html.ep" from DATA section
[Sun Jan 31 20:53:32 2016] [debug] Rendering template "layouts/default.html.ep" from DATA section
[Sun Jan 31 20:53:32 2016] [debug] 200 OK (15.007044s, 0.067/s)
[Sun Jan 31 20:53:32 2016] [debug] GET "/"
[Sun Jan 31 20:53:32 2016] [debug] Routing to a callback
got here
[Sun Jan 31 20:53:47 2016] [debug] Rendering cached template "index.html.ep" from DATA section
[Sun Jan 31 20:53:47 2016] [debug] Rendering cached template "layouts/default.html.ep" from DATA section
[Sun Jan 31 20:53:47 2016] [debug] 200 OK (15.005030s, 0.067/s)
所以我等了两次,我注意到了这一点,因为我有一个必须下载 XML 和提取信息的应用程序,而且它需要很长时间。
【问题讨论】:
-
您确定不是您的浏览器发出了额外的请求吗?
标签: perl mojolicious