[Python] xml-rpc a miltiprocess

Matteo Boscolo matteo.boscolo a boscolini.eu
Gio 30 Ago 2012 21:36:54 CEST


Il 30/08/2012 20:58, Manlio Perillo ha scritto:
> -----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.
be questo e da vedere e lo dici tu ...
> Se la funzione computeIntegration *deve* restituire il valore restituito
> dalla funzione makeConfiguration, allora ovviamente tale funzione deve
> essere eseguita prima che computeIntegration termini.
certo questo e vero, ma non e' detto che il valore di ritorno mi serva..
sto solo sperimentando in modo semplice per capire cosa fare, il codice 
riportato e migliorabilissimo...
>> 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-----
> _______________________________________________
> Python mailing list
> Python a lists.python.it
> http://lists.python.it/mailman/listinfo/python
>



Maggiori informazioni sulla lista Python