class HedwigWorker(multiprocessing.Process): def __init__(self, settings, *args, **kwargs): self.hedwig_consumer = Consumer(settings) super(HedwigWorker, self).__init__(*args, **kwargs) def run(self): LOGGER.info("Hedwig consumer: starting") self.hedwig_consumer.consume() LOGGER.info("hedwig consumer: stopped") def shutdown(self): LOGGER.info("Hedwig consumer: shutting down") self.hedwig_consumer.shutdown() LOGGER.info("Hedwig consumer: shutdown complete")
class TestConsumer(unittest.TestCase): def setUp(self): broker_address = cfg.BROKER_ADDRESS broker_exchange_name = cfg.EXCHANGE_NAME broker_queue_name = cfg.QUEUE_NAME broker_client_obj = BrokerClient(broker_address, broker_exchange_name, broker_queue_name) self._consumer = Consumer(broker_client_obj) def test_connect_to_broker(self): try: loop = asyncio.get_event_loop() loop.run_until_complete(self._consumer.connect_to_broker()) self.assertTrue(True) except ConnectionError: self.assertTrue(False) def test_consume(self): try: loop = asyncio.get_event_loop() loop.run_until_complete(self._consumer.connect_to_broker()) loop.run_until_complete(self._consumer.consume(pv_simulator.process_message)) self.assertTrue(True) except ConnectionError: self.assertTrue(False) def test_disconnect_from_broker(self): try: loop = asyncio.get_event_loop() loop.run_until_complete(self._consumer.connect_to_broker()) loop.run_until_complete(self._consumer.disconnect_from_broker()) self.assertTrue(True) except ConnectionError: self.assertTrue(False)
def ez_consume(name, queue, callback, priority=1): """ Receive data from queue. """ name = name.upper() consumer = None try: # Start consuming consumer = Consumer(host=os.getenv('RABBITMQ_HOST'), port=int(os.getenv('RABBITMQ_PORT', 5672)), vhost=os.getenv('RABBITMQ_VHOST', '/'), username=os.getenv('RABBITMQ_%s_USER' % name), password=os.getenv('RABBITMQ_%s_PASS' % name)) except Exception as e: logger.write_log('%s_CONSUMER_ERROR' % name, e) raise e print('[*] Waiting for %s messages. To exit press CTRL+C' % queue) consumer.consume(queue=os.getenv('RABBITMQ_%s_QUEUE' % name, queue), callback=callback, args={'x-priority': priority}) return True
from feed_hyperplan import FeedHyperplan from consumer import Consumer import sys from utils import abs_path """Script principal, attente de l'arrivée d'offres dans la queue.""" sys.path.insert(0, abs_path("algorithms/multinomial_nb_sklearn")) # print(sys.path) feeder = FeedHyperplan() # feeder.classify(0, "machine") consumer = Consumer(feeder) consumer.consume()
'exchangeName': 'e.message.created', 'exchangeType': 'topic', 'exchangeOptions': exchange_options, 'routingKey': 'message.created', 'userName': '******', 'password': '******', 'host': 'localhost', 'port': '5672', 'virtualHost': '/', 'queueName': 'q.message.created', 'queueOptions': queue_options } def callback(body): if 'bytes' in str(type(body)): new_body = body.decode('utf-8') try: parsed_json = json.loads(new_body) for item in parsed_json: print(parsed_json[item]) except Exception as e: print(repr(e)) traceback.print_exc() # WHAT DOES THIS DO ? raise e reader = Consumer(amqp_config) reader.enter() reader.consume(partial(callback, ))
def main(): c = Consumer(exchange='scans') c.consume(queue='upc_lookup')
def main(): c = Consumer(exchange='scans') c.consume(queue='transactions')