Github: https://github.com/pika/pika
ピカ
PikaはPython用のRabbitMQ(AMQP-0-9-1)クライアントライブラリです。
前書き
PikaはRabbitMQの拡張を含むAMQP 0-9-1プロトコルの純粋なPython実装です。
- Python 2.7と3.4+がサポートされています。
- スレッドはあらゆる状況に適しているわけではないので、スレッドを必要としません。 それはどちらも禁止しないように注意します。 同じことが、グリーンレット、コールバック、コンティニュイション、ジェネレーターにも当てはまります。 しかし、必ずしもスレッドセーフではなく、あなたの走行距離は変化します。
- 人々は、ダイレクトソケット、プレーンな古いselect()、またはネットワークイベントをPythonアプリケーションとの間でやりとりするためのさまざまな方法を使用している可能性があります。 ピカはこれらのすべてとの互換性を保ち、可能な限りシンプルな新しい環境に適応させようとしています。
ドキュメンテーション
Pikaのドキュメントはhttps://pika.readthedocs.ioにあります。
例
BlockingConnectionアダプタでメッセージを送信する、最も簡単な使用例を次に示します。
import pika
connection = pika.BlockingConnection()
channel = connection.channel()
channel.basic_publish(exchange='example',
routing_key='test',
body='Test Message')
connection.close()
そしてブロックしている消費者を書く例:
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()
Pikaは以下のアダプターを提供しています
- AsyncioConnection – Python3のAsyncIOイベントループ用のアダプタ
- BlockingConnection – 簡単な使用のために、ライブラリーの上でブロッキング、同期操作を可能にする
- SelectConnection – 高速非同期アダプタ
- TornadoConnection – Tornado IOループで使用するためのアダプターhttp://tornadoweb.org
- TwistedConnection – Twisted非同期パッケージで使用するためのアダプタhttp://twistedmatrix.com/
貢献する
pikaに貢献するには、新機能や既存の機能の変更にテストカバレッジが含まれていることを確認してください。
カバレッジなしでコードを追加または変更するプル要求は、ほとんど拒否されます。
さらに、プルリクエストを発行する前に、 google
スタイルのyapfを使用してコードをフォーマットしてください。