业务需求如下图. 一个业务既要通过webapi实时的接收处理任务, 又需要定时从数据库轮询, 还需要从socket接收数据后,
为了统一方便后面的编程. 和性能提高. 分析了一下, 程序结构设计如下.

分析后结果如下

数据处理线程是一样的任务, 线程再多也是一个类
业务入口则需要根据具体情况来实现 一个入口就是一个线程, 并且任务内容不同 . 需要是多个类.
本程序通过python实现的, webapi 用到了tornado框架,
定时循环则是简单的while循环
主程序启动代码 start.py
# 所有的数据都从 JobList 中获取的.
jobList = JobList()
# 启动主干活的线程1
scoring = DoScoringThread(jobList)
scoring.start()
# 启动主干活的线程2
scoring2 = DoScoringThread(jobList)
scoring2.start()
# 启动主干活的线程3
scoring3 = DoScoringThread(jobList)
scoring3.start()
# 从数据库循环取任务的线程
dbing = FromDBLoopGetJobThread(jobList)
dbing.start()
# 开启webapi服务
WebAPIServer.StartWebAPIServe(jobList)
干活的线程…
import threading
# from common.Job.JobList import GetOneJob
from common.Job.ScoringBLL import DoScoring
import time
import traceback
#干活的线程
class DoScoringThread(threading.Thread):
'''
自动打分线程
'''
def __init__(self,jobList)

该博客介绍了一个Python程序设计,使用多线程处理实时WebAPI任务、定时数据库轮询和Socket数据接收。程序通过tornado框架处理WebAPI,使用while循环进行数据库轮询,并利用threading.Event和RLock进行线程同步。JobList类作为任务管理核心,负责任务的添加、通知和获取。
最低0.47元/天 解锁文章
603

被折叠的 条评论
为什么被折叠?



