Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from twisted.application import service, internet
- from twisted.internet import defer, task, reactor
- def sleep(t):
- return task.deferLater(reactor, t, lambda: None)
- class WorkerApp(service.Service):
- myd = None
- def __init__(self, reactor):
- self._reactor = reactor
- print("workerapp init")
- async def _startService(self):
- self.running = True
- self.myd = defer.Deferred()
- while self.running:
- self.myd = defer.Deferred()
- try:
- print("1")
- await sleep(2)
- #raise Exception('my exception')
- print("2")
- await sleep(2)
- print("3")
- await sleep(2)
- except:
- # Put logging here
- self.running = False
- self.myd.callback(self)
- self._reactor.stop()
- else:
- self.myd.callback(self)
- def startService(self):
- defer.ensureDeferred(self._startService())
- async def _stopService(self):
- print("stop service")
- #try:
- # await sleep(1)
- #except Exception as e:
- # raise
- self.myd.addCallback(setattr, "running", False)
- return self.myd
- def stopService(self):
- defer.ensureDeferred(self._stopService())
- #return self._stopService()
- application = service.Application("my twisted app")
- service = WorkerApp(reactor)
- service.setServiceParent(application)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement