def publisher(nameko_config, **kwargs):
""" Return a function that sends AMQP messages.
"""
def publish(payload, routing_key, exchange=None):
""" Dispatch a message with `payload`
"""
conn = Connection(nameko_config[AMQP_URI_CONFIG_KEY])
with connections[conn].acquire(block=True) as connection:
if exchange is not None: # pragma: no cover
exchange.maybe_bind(connection)
with producers[conn].acquire(block=True) as producer:
producer.publish(
payload,
routing_key=routing_key,
exchange=exchange,
**kwargs
)
return publish
评论列表
文章目录