参考:https://www.cnblogs.com/ssyfj/p/9219360.html
run_in_executor开了新线程后台处理耗时长的任务。这时候其它协程继续运行。
例如run_in_executor开了新线程去处理requests下载任务。
callFunc = functools.partial(requests.get, url=murl, timeout=10*60)
result = await loop.run_in_executor(None, callFunc) #开了新线程处理下载,挂着等结果。其它定时器任务继续在老线程里跑
log("downOne:middle {}".format(name))
# coding=utf-8
import asyncio
import os
import requests
import functools
import threading
import datetime
from apscheduler.schedulers.background import BackgroundScheduler
gLock = threading.Lock()
def log(msg):
global gLock
gLock.acquire()
ct = threading.currentThread()
date = datetime.datetime.now()
time = "{}:{}:{}:{} ct={} {}".format(
date.hour, date.minute, date.second, date.mic