如果你需要在django视图中使用多线程执行其他任务,然后发现执行完后并没有达到你逾期的执行结果,
那么你可以参考一下我的经验
我是这样实现的
线程函数
def run(pn):
pub_list = {} # 参数返回集合
fi=threading.Thread(target=fin,args=(pn,pub_list))
al=threading.Thread(target=all,args=(pn,pub_list))
ic=threading.Thread(target=ick,args=(pn,pub_list))
print('线程启动')
fi.start()
fi.join()
al.start()
al.join()
ic.start()
ic.join()
# al=all(pn)
# ic=ick(pn)
pub_list['fin_len']=len(pub_list['fin'])
pub_list['all_len']=len(pub_list['all'])
pub_list['ick_len']=len(pub_list['ick'])
print('fin=> ',len(pub_list['fin']),'all=> ',len(pub_list['all']),'ick=> ',len(pub_list['ick']))
return pub_list
views 视图函数
def thread():
run(1)
有没有发现和平常的普通多线程有啥区别?
对了,没有了main,执行入口没有了
if __name__ == '__main__':
如果你在视图执行过程中想要执行多线程,最后运行起来却发现多线程并没有被触发,那么你可以尝试把main去掉
然后重新执行,祝你好运