Produit du jour : Votre boutique sur le web lite à partir de 1.00 € (Logiciel)
03/12/2003 21:29 par Nicolas | 2 réponse(s) | Signaler un contenu abusif ou erroné
Bonjour,

J'aimerai qu'un client puisse lancer une requête par SOAP sur un serveur
perl utilisant SOAP::Lite.

Le problème est que la tache demandée prend beaucoup de temps d'ou l'idée de
lancer la chose en tache de fond en faisant un fork dans la "sub" concernée.

mais visiblement les PID enfants ne meurrent pas !


Voici un bout de progamme pour illustrer la chose:

#--#

#!/usr/bin/perl -w

use strict;
use SOAP::Transport::HTTP;

my $daemon = SOAP::Transport::HTTP::Daemon
-> new (LocalPort => 8989)
-> dispatch_to('Test')
;

print "Contact to SOAP server at ", $daemon->url, "";
$daemon->handle;


package Test;

sub toto {

if ( fork() ) {
# ici, c'est le process parent
return 'ok';
} else {
# Simule un long traitement
sleep 10;
return 1;
}
}

1;
#--#

et le client pour tester:

#--#

#!/usr/bin/perl -w

use SOAP::Lite;

print SOAP::Lite
-> uri('http://localhost/Test')
-> proxy('http://localhost:8989')
-> toto()
-> result . "";

#--#

Merci pour votre aide !

Nicolas

perl par l'exemple

use constant et optimisation en debug


2 réponse(s)   |   flux rss   |   Transférer   |   Imprimer
 
 
Téléchargements Tous les téléchargements