Je travaille sur un serveur xmlrpc qui doit effectuer certaines tâches cycliquement. Je me sers tordu comme le noyau du service de xmlrpc mais je suis en cours d'exécution dans un petit problème:Multiprocesseur Python avec le réacteur twisted
class cemeteryRPC(xmlrpc.XMLRPC):
def __init__(self, dic):
xmlrpc.XMLRPC.__init__(self)
def xmlrpc_foo(self):
return 1
def cycle(self):
print "Hello"
time.sleep(3)
class cemeteryM(base):
def __init__(self, dic): # dic is for cemetery
multiprocessing.Process.__init__(self)
self.cemRPC = cemeteryRPC()
def run(self):
# Start reactor on a second process
reactor.listenTCP(c.PORT_XMLRPC, server.Site(self.cemRPC))
p = multiprocessing.Process(target=reactor.run)
p.start()
while not self.exit.is_set():
self.cemRPC.cycle()
#p.join()
if __name__ == "__main__":
import errno
test = cemeteryM()
test.start()
# trying new method
notintr = False
while not notintr:
try:
test.join()
notintr = True
except OSError, ose:
if ose.errno != errno.EINTR:
raise ose
except KeyboardInterrupt:
notintr = True
Comment dois-je aller à se joindre à ces processus en deux afin que leurs joints respectifs ne bloque pas?
(je suis assez confus par « rejoindre ». Pourquoi serait-il bloquer et je l'ai googlé, mais ne peut pas trouver beaucoup explication utile à l'utilisation de rejoindre. Quelqu'un peut-il me l'expliquer?)
Cordialement
oh homme merci beaucoup c'est pourquoi j'ai besoin exactement. Où avez-vous entendu parler de LoopingCall? C'est pourquoi je déteste tordu - les documentations ne suffisent pas d'une part, tandis que les API sont si grands que vous avez tendance à négliger les bits importants. –
Je sais ce que vous voulez dire - Twisted peut être difficile à apprendre, mais une fois que vous avez l'idée, cela fonctionne très bien! Le livre d'O'Reilly est assez ancien maintenant, mais il explique très bien les choses, donc je recommande d'en obtenir une copie si vous voulez en faire beaucoup plus avec Twisted. –
Je vous recommande la souscription à leur liste de diffusion. Si vous lisez assez de réponses de la part du gourou, une partie de celle-ci commence à coller * l'osmose cérébrale *. – DrBloodmoney