[Python] xml-rpc a miltiprocess

Manlio Perillo manlio.perillo a gmail.com
Gio 30 Ago 2012 20:58:26 CEST


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Il 30/08/2012 20:15, Matteo Boscolo ha scritto:
>  Ciao A tutti
> ho una classe fatta cosi...
> 
> class Application(object):
>     ...
>     ...
>     def computeIntegration(self,nodeEngineName):
>         """
>              compute the bom solved to the editor
>         """
>         try:
>             if not nodeEngineName in self._nodesEngines:
>                 raise ValueNot('Node engine not loaded')
>            
> nodeTree=self._nodesEngines[nodeEngineName].getNodeRelationTree()
>             integrationServer =
> xmlrpclib.ServerProxy("http://127.0.0.1:8500" )
>             return integrationServer.*makeConfiguration*(nodeTree) 
>         except Exception ,ex:
>             print_exc_plus()
>             raise ex
> 
> e fin qui tutto ok ...
> 
> la computeIntegration viene chiamata da un server SimpleXMLRPCServer e
> viene eseguita correttamente.
> 
> quello che vorrei ottenere e che alla chiamata xml-rpc la funzione venga
> eseguita tutta senza aspettare l'esecuzione del metodo
> *makeConfiguration* che impiega molto tempo

Quello che vuoi non è possibile.

Se la funzione computeIntegration *deve* restituire il valore restituito
dalla funzione makeConfiguration, allora ovviamente tale funzione deve
essere eseguita prima che computeIntegration termini.

> ho provato a sostituire il codice sopra con questo qui sotto commentato,
> ma il metodo *makeConfiguration* viene eseguito e poi sembra che il
> processo si interrompa.
> 
> #        nodeTree=self._nodesEngines[nodeEngineName].getNodeRelationTree()
> #        p=Process(target=startProcess, args=(nodeTree,))
> #        p.start()
> #        logging.info("Configuration in process !! ")
> #        return "Configuration in Process.."
> 
> #def startProcess(nodeTree):
> #    integrationServer = xmlrpclib.ServerProxy("http://127.0.0.1:8500" )
> #   integrationServer.makeConfiguration(nodeTree) 
> 
> qualche idea ??
> 

Non ho capito quello che stai facendo.
Il metodo startProcess da chi viene chiamato?
Che implementazione di xmlrpc stai utilizzando?


Ciao  Manlio
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAlA/t9IACgkQscQJ24LbaUTznwCgjY36LpqLcmZz851k+O3Dkt67
8OcAmwQHkBgdJBDDqeYLsHuoraWwmWIF
=ff1a
-----END PGP SIGNATURE-----


Maggiori informazioni sulla lista Python