python 异步协程处理数据
2021.9.27==引入 (未分装,直接引用)
项目实践:只引用关键步骤,定时执行(间隔1分钟),目的是为了协程实现接口监控报警
import jsonschema
from jsonschema import validate, draft7_format_checker
from jsonschema.exceptions import SchemaError, ValidationError
pool = ThreadPoolExecutor(max_workers=1)
def check_update_by_sql_online():
#定义一个线程池:
while True:
with ThreadPoolExecutor(max_workers=len(data)) as pool:
task_list = []
for ind in range(len(data)):
#runTask是执行函数 关键:pool.submit实现异步协程处理函数
task_list.append(pool.submit(runTask, param1, param2)
arr = []
#计时判断
if hi_errmsg_time>10:
hi_errmsg_time = 0
#拿出异步执行函数结果 执行结果有runTask函数返回数据
for task in task_list:
#如返回结果task.result()[0]
arr.append(task.result()[0])
if hi_errmsg_time == 10: #10分钟
#执行报警通知
sayHello()
time.sleep(60)
hi_errmsg_time = hi_errmsg_time + 1
#获取各个执行结果
getArr(arr)
if __name__ == '__main__':
check_update_by_sql_online()
以上只是一个简单例子;还可以greenlet库、gevent库实现协程