python进程间通信 listener_套接字-Python中的进程间通信

签出一个称为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()

订阅者(接收数据,可以是多个):

import pika, bson

connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))

channel = connection.channel()

channel.exchange_declare(exchange='logs', type='fanout')

result = channel.queue_declare(exclusive=True)

queue_name = result.method.queue

channel.queue_bind(exchange='logs', queue=queue_name)

def callback(ch, method, properties, body):

data = bson.loads(body)

print("Received", data)

channel.basic_consume(callback, queue=queue_name, no_ack=True)

channel.start_consuming()

基于[https://www.rabbitmq.com/tutorials/tutorial-two-python.html]的示例

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值