webapi,定时轮询多入口,多线程如何实现并发处理.

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

业务需求如下图. 一个业务既要通过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)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值