У меня есть сайт, на котором работает Dancer.
На этом сайте у меня есть форма с одним текстовым полем и строкой foreach, написанной в этом текстовом поле, когда форма отправляется по почте, я выполняю для нее какое-то действие. Каждая строка запускает процесс, и это занимает некоторое время (в зависимости от строки процесс может занять около 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, чтобы вернуть шаблон
Как я могу добиться чего-то подобного?