/usr/share/doc/pyro/examples/distributed-computing2/dispatcher.py is in pyro-examples 1:3.14-1.1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | #!/usr/bin/env python
import Pyro.core
import Pyro.naming
from Pyro.errors import NamingError
from Queue import Queue
class DispatcherQueue(Pyro.core.ObjBase):
def __init__(self):
Pyro.core.ObjBase.__init__(self)
self.workqueue = Queue()
self.resultqueue = Queue()
def putWork(self, item):
self.workqueue.put(item)
def getWork(self, timeout=5):
return self.workqueue.get(block=True, timeout=timeout)
def putResult(self, item):
self.resultqueue.put(item)
def getResult(self, timeout=5):
return self.resultqueue.get(block=True, timeout=timeout)
def workQueueSize(self):
return self.workqueue.qsize()
def resultQueueSize(self):
return self.resultqueue.qsize()
######## main program
Pyro.core.initServer()
ns=Pyro.naming.NameServerLocator().getNS()
daemon=Pyro.core.Daemon()
daemon.useNameServer(ns)
try:
ns.createGroup(":Distributed2")
except NamingError:
pass
try:
ns.unregister(":Distributed2.dispatcher")
except NamingError:
pass
uri=daemon.connect(DispatcherQueue(),":Distributed2.dispatcher")
print "Dispatcher is ready."
daemon.requestLoop()
|