我希望对 Mojolicious 应用程序的请求能够触发长时间运行的作业。客户不需要等待那个漫长的工作完成,所以我希望应用程序发回快速响应并开始工作。这是我的想法:
use Mojolicious::Lite;
get '/foo' => sub {
my $self = shift;
$self->render( text => 'Thanks for requesting /foo. I will get started on that.' );
# ... force Mojolicious to send response now ...
do_long_running_job();
};
但是当我编写这样的代码时,客户端直到长时间运行的作业完成后才会收到响应(这可能会触发不活动超时等)。有什么方法可以更快地发送响应吗?有没有另一种方法来构建我的代码/应用程序来实现这一点?
文档中看起来很有希望但没有用的东西:
$self->rendered(200);
$self->res->finish;