[dancer-users] From Dancer launch Background Process
Hugues Max
huguesmax at gmail.com
Tue Apr 30 08:09:27 BST 2013
Hello
I would like to launch in background a perl program ( or function who
create lot of PDF) from my Dancer APP.
and view in web page the log of this program.
I've done a small test, ajax part works well, but if my process
backgroup is too long with sleep , nothing works, web browser wait...
What is the best way to do that ?
use backtick ``, system, exec ? create sub or launch external perl
program as
my $output = qx|perl /util/generation.pl $id &|; print $output;
or fork module ?
thanks for your advice
Hugues.
post '/generationpdf' => sub {
...
...
background();
}
#my test background process
sub background {
open (LOG,">:encoding(UTF-8)",$PATHPDF."generationpdf.log") ||
die ("Problème d'ouverture du fichier de log $!");
say LOG "\n################################################";
for (my $i=0;$i<300;$i++) {
# sleep 1;
say LOG $i;
}
}
AJAX PART
ajax '/getloadavg' => sub {
my $cmd = "tail ". $PATHPDF. "generationpdf.log";
{
timestamp => time,
loadavg => `$cmd`,
};
TEMPLATE PART
<pre>Calcul des PDF: <span id="flog"></span> </pre>
<script type="text/javascript">
setInterval(function() {
$.getJSON('[% request.uri_base %]/getloadavg', function(response) {
var point = [
response.timestamp,
response.log
];;
$("#timestamp").text(response.timestamp);
$("#flog").text(response.flog);
})
}, 1000);
</script>
More information about the dancer-users
mailing list