J'ai une application fonctionnant sous Catalyst + FastCGI. Et je le veux fork() pour faire un peu de travail en arrière-plan.
J'ai utilisé ce code pour CGI clair depuis longtemps (et cela a fonctionné):Quelle est la bonne façon de fork() dans FastCGI?
defined(my $pid = fork) or die "Can't fork: $!";
if ($pid) {
# produce some response
exit 0;
}
die "Can't start a new session: $!" if setsid == -1;
close STDIN or die $!;
close STDOUT or die $!;
close STDERR or die $!;
# do some work in background
J'ai essayé quelques variations sur ce FastCGI, mais sans succès. Comment faut-il forger sous FastCGI?
Mise à jour: Voici ce que j'ai maintenant:
defined(my $pid = fork) or die "Can't fork: $!";
if ($pid) {
$c->stash->{message} = 'ok';
$c->detach($c->view('JSON'));
}
die "Can't start a new session: $!" if setsid == -1;
close STDIN or die $!;
close STDOUT or die $!;
close STDERR or die $!;
# do some work, then exit()
J'envoie la demande d'appel AJAX, et ont l'erreur « 502 Passerelle » dans la console Firebug.
S'il vous plaît, donnez plus d'informations. Qu'avez-vous essayé, et quelle erreur/comportement a-t-il donné? –