示例#1
0
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)
示例#3
0
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, ))
示例#6
0
def main():
    c = Consumer(exchange='scans')
    c.consume(queue='upc_lookup')
示例#7
0
def main():
    c = Consumer(exchange='scans')
    c.consume(queue='transactions')