def _listen(self, task, retry_wait=30): self._pubsub = None keepTrying = True sleep = 0 while keepTrying and not self._shutdown: try: if sleep: log.info("Waiting %s seconds to reconnect..." % sleep) time.sleep(sleep) sleep = min(retry_wait, sleep * 2) else: sleep = .1 log.info("Connecting to RabbitMQ...") self._pubsub = getProtobufPubSub(self._amqpConnectionInfo, self._queueSchema, QUEUE_RAW_ZEN_EVENTS) self._pubsub.registerHandler('$Event', task) self._pubsub.registerExchange('$ZepZenEvents') self._pubsub.messagesPerWorker = self.options.messagesPerWorker #reset sleep time sleep = 0 self._pubsub.run() except (socket.error, AMQPConnectionException) as e: log.warn("RabbitMQ Connection error %s" % e) except KeyboardInterrupt: keepTrying = False finally: if self._pubsub: self._pubsub.shutdown() self._pubsub = None
def _listen(self, task, retry_wait=30): self._pubsub = None keepTrying = True sleep = 0 while keepTrying and not self._shutdown: try: if sleep: log.info("Waiting %s seconds to reconnect..." % sleep) time.sleep(sleep) sleep = min(retry_wait, sleep * 2) else: sleep = .1 log.info("Connecting to RabbitMQ...") self._pubsub = getProtobufPubSub(self._amqpConnectionInfo, self._queueSchema, QUEUE_RAW_ZEN_EVENTS) self._pubsub.registerHandler('$Event', task) self._pubsub.registerExchange('$ZepZenEvents') self._pubsub.messagesPerWorker = self.options.messagesPerWorker #reset sleep time sleep=0 self._pubsub.run() except (socket.error, AMQPConnectionException) as e: log.warn("RabbitMQ Connection error %s" % e) except KeyboardInterrupt: keepTrying = False finally: if self._pubsub: self._pubsub.shutdown() self._pubsub = None
def main(): from optparse import OptionParser import sys parser = OptionParser(usage=usage()) parser.add_option('-F', '--format', type='string', dest='format', default='protostream', help='Format to dump the messages in (%s)' % ', '.join(_FORMATTERS.keys())) parser.add_option( '-c', '--compression', type='string', dest='compression', default='none', help='Message compression algorithm (possible values: deflate, none)') parser = AMQPConfig.addOptionsToParser(parser) parser = addLoggingOptions(parser) options, args = parser.parse_args() schemas = [SCHEMA] schemas.extend(get_zenpack_schemas()) try: formatter = _FORMATTERS[options.format.lower()] except KeyError: parser.error('Invalid format "%s"' % options.format) initLogging(options) amqpConnectionInfo = AMQPConfig() amqpConnectionInfo.update(options) schema = Schema(*schemas) schema.loadProperties( {'exchange.default.compression': options.compression.lower()}) publisher = getProtobufPubSub(amqpConnectionInfo, schema, None) loader = Loader(sys.stdin, formatter, schema, publisher) try: loader.load() except KeyboardInterrupt: pass loader.publisher.shutdown()
def main(): from optparse import OptionParser import sys parser = OptionParser(usage=usage()) parser.add_option('-F', '--format', type='string', dest='format', default='protostream', help='Format to dump the messages in (%s)' % ', '.join(_FORMATTERS.keys())) parser.add_option('-c', '--compression', type='string', dest='compression', default='none', help='Message compression algorithm (possible values: deflate, none)') parser = AMQPConfig.addOptionsToParser(parser) parser = addLoggingOptions(parser) options, args = parser.parse_args() schemas = [SCHEMA] schemas.extend(get_zenpack_schemas()) try: formatter = _FORMATTERS[options.format.lower()] except KeyError: parser.error('Invalid format "%s"' % options.format) initLogging(options) amqpConnectionInfo = AMQPConfig() amqpConnectionInfo.update(options) schema = Schema(*schemas) schema.loadProperties({'exchange.default.compression': options.compression.lower()}) publisher = getProtobufPubSub(amqpConnectionInfo, schema, None) loader = Loader(sys.stdin, formatter, schema, publisher) try: loader.load() except KeyboardInterrupt: pass loader.publisher.shutdown()