退房一個跨平臺的庫/服務器調用的RabbitMQ。對於雙進程通信來說可能過於沉重,但如果您需要多進程或多代碼庫通信(使用各種不同的方式,例如一對多,隊列等),這是一個不錯的選擇。
要求:
$ pip install pika
$ pip install bson # for sending binary content
$ sudo apt-get rabbitmq-server # ubuntu, see rabbitmq installation instructions for other platforms
出版商(發送數據):
import pika, time, bson, os
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
channel.exchange_declare(exchange='logs', type='fanout')
i = 0
while True:
data = {'msg': 'Hello %s' % i, b'data': os.urandom(2), 'some': bytes(bytearray(b'\x00\x0F\x98\x24'))}
channel.basic_publish(exchange='logs', routing_key='', body=bson.dumps(data))
print("Sent", data)
i = i + 1
time.sleep(1)
connection.close()
訂戶(接收數據,可以是多個):基於https://www.rabbitmq.com/tutorials/tutorial-two-python.html
感謝,非常好 – wim
可以修改這個工作在多線程環境嗎?我現在有幾個工作線程連接,並且它似乎導致zmq c代碼斷言失敗 – wim
您也可以用pizco打包zmq: https://pizco.readthedocs.io/en/latest/ –