【CA888亚洲城集团 OK3399-C 开发板试用体验】(安装RabbitMQ消息队列服务】
fcb5511
2020-09-30 13:29:00
RK3399
RK3399开发板
3399开发板
作者:fcb5511
提供两种消息队列服务安装方式:
2、erl # 查看relang语言版本,成功执行则说明relang安装成功
在rk3399浏览器中输入localhost:15672,登陆用户名和密码分别为”guest”、”guest”。
局域网内计算机浏览器输入192.168.1.109:15672,用户名和密码分别为”admin”、”admin”
import pika
import threading
import time
import signal
import os
class Producer(object):
def __init__(self, host='127.0.0.1', port=5672,
user='admin', passwd='admin',
exchange='test_exchange', routing_key='test_key',
exchange_type= 'fanout', exhcange_durable=False, exchange_autodelete=True
):
self.host=host
self.port=port
self.user=user
self.passwd=passwd
self.exchange=exchange
self.routing_key=routing_key
self.exchange_type=exchange_type
self.exhcange_durable=exhcange_durable
self.exchange_autodelete=exchange_autodelete
self.connection=None
self.channel=None
def CreateConnection(self):
try:
self.credentials=pika.PlainCredentials(self.user, self.passwd)
self.connection = pika.BlockingConnection(pika.ConnectionParameters(host = self.host, port = self.port, virtual_host = '/', credentials=self.credentials))
self.channel = self.connection.channel()
self.channel.exchange_declare(exchange_type=self.exchange_type, exchange = self.exchange, durable = self.exhcange_durable, auto_delete=self.exchange_autodelete)
except Exception as e:
print("occurring an exception when the producer executing the function 'CreateConnection()':", e)
def PublisMessage(self, Message):
try:
self.channel.basic_publish(exchange=self.exchange, routing_key=self.routing_key, properties=pika.BasicProperties(delivery_mode = 2), body=Message)
except Exception as e:
print("An exception occurred when publishing message:", e)
amqconsumer.py程序:
import pika
import time
class Consumer(object):
def __init__(self, host='127.0.0.1', port=5672,
user='admin', passwd='admin',
queue='test_queue', exchange='test_exchange', routing_key='test_key',
queue_exclusive=False, queue_durable=False, queue_autodelete=True,
exchange_type= 'fanout', exhcange_durable=False, exchange_autodelete=True
):
self.host=host
self.port=port
self.user=user
self.passwd=passwd
self.queue=queue
self.exchange=exchange
self.routing_key=routing_key
self.queue_exclusive=queue_exclusive
self.queue_durable=queue_durable
self.queue_autodelete=queue_autodelete
self.exchange_type=exchange_type
self.exhcange_durable=exhcange_durable
self.exchange_autodelete=exchange_autodelete
self.connection=None
self.channel=None
def CreateConnection(self):
try:
self.credentials=pika.PlainCredentials(self.user, self.passwd)
self.connection = pika.BlockingConnection(pika.ConnectionParameters(host = self.host, port = self.port, virtual_host = '/', credentials=self.credentials))
self.channel = self.connection.channel()
self.channel.queue_declare(queue=self.queue, durable=self.queue_durable, exclusive=self.queue_exclusive, auto_delete=self.queue_autodelete)
self.channel.exchange_declare(exchange_type=self.exchange_type, exchange = self.exchange, durable = self.exhcange_durable, auto_delete=self.exchange_autodelete)
self.channel.queue_bind(queue = self.queue, exchange = self.exchange, routing_key = self.routing_key)
self.channel.basic_consume(on_message_callback = self.on_response, auto_ack=True, queue=self.queue)
except Exception as e:
print("occurring an exception when the consumer RecvData:", e)
def on_response(self, ch, method, props, body):
#print(" [%s] Received %r" % (time.time(), body))
print(time.strftime('%H:%M:%S',time.localtime(time.time()))+': Get Message from '+self.host + ':'+body.decode())
def ProcessConsumeEventBlock(self):
try:
self.channel.start_consuming()
except Exception as e:
print('An exception occurred when executing consuming, the exception is:',e)
def ProcessConsumeEventNoneBlock(self):
try:
self.connection.process_data_events()
except Exception as e:
print('An exception occurred when executing consuming, the exception is:',e)
main.py程序:
import pika
import time
import threading
from amqconsumer import Consumer
from amqproducer import Producer
class ManageMent:
def __init__(self):
self.producer = Producer(host='localhost',user='guest',passwd='guest')
self.consumer = Consumer(host='localhost',user='guest',passwd='guest')
def CreateSever(self):
self.consumer.CreateConnection()
self.producer.CreateConnection()
def ProducerRun(self):
while True:
self.producer.PublisMessage('this message is used for testing RabbitMQ')
time.sleep(0.3)
def ConsumerRun(self):
self.consumer.ProcessConsumeEventBlock()
def Run1(self):
while True:
self.producer.PublisMessage('this message is used for test RabbitMQ')
self.consumer.ProcessConsumeEventNoneBlock()
time.sleep(1)
def Run(self):
self.Consumer_thread=threading.Thread(target=self.ConsumerRun)
self.Producer_thread=threading.Thread(target=self.ProducerRun)
self.Consumer_thread.start()
self.Producer_thread.start()
if __name__ == '__main__':
manage=ManageMent()
manage.CreateSever()
manage.Run()
最终运行效果如图
此贴为基础功能,下次将mq数据与qt界面结合,实现动态的界面。
相关产品 >
-
FET3399-C核心板
CA888亚洲城集团RK3399安卓高性能核心板采用 采用六核Rockchip RK3399芯片,双Cortex-A72大核+四Cortex-A53小核结构,对整数、浮点、内存等作了大幅优化,在整体性能、功耗及核心面积三个方面提升。以下将对瑞芯微芯片RK3399参数,RK3399核心板方案及其性能做具体介绍。如您对CA888亚洲城集团RK3399系列核心板有兴趣,欢迎咨询了解。
了解详情
-
OK3399-C开发板
CA888亚洲城集团RK3399安卓开发板主芯片采用高性能六核CPU Rockchip RK3399,GPU采用Mail-T860四核 GPU,RK3399作为目RK产品线中低功耗、高性能的代表,可满足人脸识别设备、机器人、无人机、IoT物联网领域应用。CA888亚洲城集团RK3399开发板在整体性能、功耗及核心面积做了大幅度优化,更加满足工业设计需求。CA888亚洲城集团RK3399开发板为进一步减少用户二次开发难度,开放了底板原理图,并提供了RK3399用户手册、芯片手册,加上优质的技术服务,让您的方案从构思到上市时间缩短。
了解详情


