純Python的RabbitMQ/AMQP 0-9-1客戶端庫:Pika

jopen 10年前發布 | 19K 次閱讀 Pika 網絡工具包

Pika是一個純Python實現的AMQP 0-9-1協議,它嘗試與底層網絡支持庫之間保持獨立。支持多種適配器,如TwistedConnection(適用于Twisted異步包)、TornadoConnection(適用于Tornado IO循環)等。

  • Currently supports Python 2.6 and Python 2.7 only. 3.2+ support planned.
  • Since threads aren't appropriate to every situation, it doesn't require threads. It takes care not to forbid them, either. The same goes for greenlets, callbacks, continuations and generators. It is not necessarily thread-safe however, and your milage will vary.
  • People may be using direct sockets, asyncore, plain old select(), or any of the wide variety of ways of getting network events to and from a python application. Pika tries to stay compatible with all of these, and to make adapting it to a new environment as simple as possible.
  • </ul>

    Example

    Here is the most simple example of use, sending a message with the BlockingConnection adapter:

    import pika
    connection = pika.BlockingConnection()
    channel = connection.channel()
    channel.basic_publish(exchange='example',
                          routing_key='test',
                          body='Test Message')
    connection.close()

    And an example of writing a blocking consumer:

    import pika
    connection = pika.BlockingConnection()
    channel = connection.channel()
    
    for method_frame, properties, body in channel.consume('test'):
    
        # Display the message parts and ack the message
        print method_frame, properties, body
        channel.basic_ack(method_frame.delivery_tag)
    
        # Escape out of the loop after 10 messages
        if method_frame.delivery_tag == 10:
            break
    
    # Cancel the consumer and return any pending messages
    requeued_messages = channel.cancel()
    print 'Requeued %i messages' % requeued_messages
    connection.close()

    項目主頁:http://www.baiduhome.net/lib/view/home/1418473182089

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!