用于与esb通信的amqp层。

swarm-bus的Python项目详细描述


通过amazon sqs实现esb的客户端实现。

简单用法

uri = 'sqs://LOGIN:PASSWORD@'
transport = {
    'region': 'eu-west-1',
    'exchange': 'swarm',
    'queue_name_prefix': 'dev-%(hostname)s-',
    'office_hours': False,
    'use_priorities': True,
    'priorities': ['low', 'high']
}
queues = {
  'my_queue': {
      'route': 'my.queue.route',  # Specific route
      'sleep': 60,                # Seconds before next call to SQS
      'visibility': 1800,         # Visibility message in queue
      'wait': 10                  # Long polling seconds
  },
  'my_second_queue': {}           # Will be automaticaly filled/completed
}

bus = AMQP(uri, transport, queues)
bus.connect()

# We purge a known queue
bus.purge_queue('my_queue')

# Now we add a new queue on the fly
bus.register_queue('new_queue', {'wait': 20})

bus.close()

用作制作人

with AMQP(uri, transport, queues) as producer:
    producer.publish(
        'my_queue',
        {'id': 42},
        1  # Optional, specify 'high' priority queue
    )

作为消费者使用

def print_routing_key(body, message):
    id_ = body['id']
    rk = message.delivery_info['routing_key']
    print("[x] %r:%r" % (rk, id_))

def ack_message(body, message):
    message.ack()

def error_handler(body, message):
    raise ValueError('Error while processing message')

with AMQP(uri, transport, queues) as consumer:
    consumer.consume(
        'my_queue',
        [print_routing_key, ack_message],
        error_handler
    )

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
将Java double[]]数组设置为double[],但不复制   java生成一个定制的lastIndexOf方法   bigdecimal在Java中何时应使用浮点类型?   java在BigO符号上的困惑   java从指定的文件夹加载一个jar和一个特定的类?   java安卓:在按钮下放置文本   java如何为具有多种类型的项设计rest端点?   java Javafx:ListView禁用列表中的指定元素   JavaJSF:如何一次呈现=#{bean.isRendered}多个组件   如何在自定义序列化(Java)中重写final writeObject()方法   java如何在不重命名实例变量的情况下使用实例变量两次?   使用servlet过滤器时,应用程序引擎上的java Spring启动应用程序出错   java我的代码适用于访问器和变异器方法吗?   java Bellman Ford随机生成错误结果   JavaDoc生成的文档两次列出类和方法   内存中的java H2数据库控制台未打开   排序如何在java中对arraylist进行反向排序?(仅使用选择排序)   在Java中调用参数化构造函数   java如何在eclipse中恢复我选中的已删除项目(删除磁盘上的内容)   java如何停止等待用户输入?