我在一个xmlrpc服务器上工作,它必须周期性地执行某些任务。我使用twisted作为xmlrpc服务的核心,但遇到了一个小问题:
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
我应该如何连接这两个进程,以便它们各自的连接不被阻塞?
(我被“加入”搞糊涂了。)。为什么它会被屏蔽,我在google上搜索了一下,但找不到对join用法有用的解释。有人能给我解释一下吗?)
问候
目前没有回答
相关问题 更多 >
编程相关推荐