def __init__(self, processor, handler, address=None): super(ThriftAMQService, self).__init__() self.processor = processor self.handler = IAMQServiceHandler(handler) self.address = address or handler.address self.setName("{0} over AMQP".format(self.handler.address))
class ThriftAMQService(service.Service, object): def __init__(self, processor, handler, address=None): super(ThriftAMQService, self).__init__() self.processor = processor self.handler = IAMQServiceHandler(handler) self.address = address or handler.address self.setName("{0} over AMQP".format(self.handler.address)) @defer.inlineCallbacks def server(self, address, processor, handler, queues=None): server = yield self.parent.server_factory.build_server(self, processor, handler, address, queues) # @todo: Make a new IService instance and add it to the parent as a # child of me. defer.returnValue(server) @defer.inlineCallbacks def startService(self): self.client = self.parent.client_factory.build_client yield self.server(self.address, self.processor, self.handler) super(ThriftAMQService, self).startService() log.info("ThriftAMQService started, notifying handler") self.handler.amq_start(self) @defer.inlineCallbacks def stopService(self): log.info("ThriftAMQService stopping, notifying handler") yield self.handler.amq_stop() log.info("ThriftAMQService handler shutdown process terminated, stopping service") super(ThriftAMQService, self).stopService() def processing_error(self, failure): log.error("An error occurred while processing a message!") log.error(failure) def queue_closed(self, failure): pass def queue_error(self, failure): log.error("Queue error!") log.error(failure)