服务端程序
服务端运行的都是python模块,使用总线式通信,rabbitmq作为总线工具。redis作为内存数据库。
后台模块主要分三个部分:
- 数据接收模块 –httppub.py–
- 数据处理模块 –m_ctrlcenter.py、m_statuschanger.py–
- 指令发送模块 –m_redispush.py–
同时为了实时获取总线所有数据信息,写了一个总线数据获取模块 –m_echo.py–
工作流程
服务端程序的工作流程为下:
HTTP接口获取数据 —–> 数据接收模块 —–> 数据处理模块 —–> 指令发送模块
数据接收
从HTTP接口获取到数据,通过调用httppub.py脚本,将数据封装后发送到总线上,发送目标模块为数据处理模块。
#
# httppub.py
# 主要代码
def Pub(message_):
connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
channel = connection.channel()
channel.exchange_declare(exchange='topic_test', type='topic')
channel.basic_publish(exchange='topic_test',
routing_key=method,
body=message_)
connection.close()
def Main(param_):
#to do
msg = Packer(param_)
Pub(msg)
def send(param_):
Main(param_)
数据处理
数据处理脚本主要是m_ctrlcenter.py。此脚本首先订阅并获取到从httppub.py发送过来的数据,然后按照既定的逻辑进行数据分析,这里的数