def __init__(self, url, exchange, reconnect_delay=5.0, io_loop=None): self._url = url self._exchange = exchange self._reconnect_delay = reconnect_delay self._io_loop = io_loop or registry.io_loop() self._connection = None self._closing = False self._consumers = set()
def __init__(self, exchange, queue, routing_key, handler, io_loop=None): self._exchange = exchange self._queue = queue self._routing_key = routing_key self._handler = handler self.running = False self._connection = None self._io_loop = io_loop or registry.io_loop()
from tornado import gen from event_mq import decorators, event, registry @decorators.event_handler('tests.main.hello') def hello_handler(msg): print('type of msg: %s' % type(msg)) if isinstance(msg, event.DomainEvent): print('content of msg: %s' % event._dumps(msg)) else: print('content of msg: %s \n' % msg) async def test(): for i in range(10): en = event.DomainEvent('tests.main.hello', content='message %s' % i, info='hello, world') res = await event.publish_async(en) print('send msg %s success: %s' % (i, res)) await gen.sleep(0.5) if __name__ == '__main__': registry.io_loop().call_later(1, test) registry.io_loop().start()
# coding: utf-8 from event_mq import event, mq_server, settings, registry # register mq_servers for name, data in settings.get('MQ_SERVERS').items(): server = mq_server.MqServer(data['url'], data['exchange'], data.get('reconnect_delay', 5), registry.io_loop()) server.start() registry.Registry._add_mq_server(name, server)
def publish(event, mq_server='default'): server = registry.get_mq_server(mq_server) if not server: raise Exception('cannot find named "{0}" mq_server'.format(mq_server)) registry.io_loop().spawn_callback(server.publish_async, event.event_name, _dumps(event))