【发布时间】:2014-04-05 16:12:50
【问题描述】:
我有一个运行 Dancer 的网站。
在这个站点中,我有一个带有一个 textarea 的表单,并且在这个 textarea 中编写了 foreach 行,当通过 post 提交表单时,我会为它执行一些操作。 每行启动一个过程,需要一些时间(根据行的不同,该过程可能需要大约 20 秒、40 秒、1 分钟......)
帖子是这样的:
post '/actions/AddSrv' => sub {
my $self = shift;
my @Results;
foreach my $dest_addr ( split /\n/, params->{HostsList} ){
#Here starts the process
my $Result = start_some_process($dest_addr);
push @Results, $Result;
##Now i have the result of this process execution
}
template 'actions/AddSrv.tt', { Results => [ @Results ] }, { layout => 'logged_site' };
};
使用此代码,我需要等到所有 $dest_addr 都被处理后才能在屏幕上查看所有执行的结果。 当对 start_some_process() 的调用结束时,是否有一种方法可以立即打印每个进程的结果?现在我需要等到 foreach 结束,才能返回模板
我怎样才能实现这样的目标?
【问题讨论】: