我在标准配置(plackup/Starman)中使用 Dancer 1.31。
在请求中,我希望异步调用 perl 函数,以便请求立即返回。想想典型的“长时间运行的操作”场景,其中一个人想要返回一个带有刷新+重定向的“处理页面”。
我(天真地?)尝试了一个线程:
sub myfunc {
sleep 9; # just for testing a slow operation
}
any '/test1' => sub {
my $thr = threads->create('myfunc');
$thr->detach();
return "done" ;
};
我不工作,服务器似乎冻结了,错误日志没有显示任何内容。我猜 Dancer 内部禁止手动创建线程?是PSGI的问题吗?推荐的方法是什么?