django 视图中使用多线程

2021-04-09 11:23:57 浏览数 (1)

如果你需要在django视图中使用多线程执行其他任务,然后发现执行完后并没有达到你逾期的执行结果,

那么你可以参考一下我的经验

我是这样实现的

线程函数

代码语言:javascript复制
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,执行入口没有了
代码语言:javascript复制
if __name__ == '__main__':
如果你在视图执行过程中想要执行多线程,最后运行起来却发现多线程并没有被触发,那么你可以尝试把main去掉
然后重新执行,祝你好运
代码语言:javascript复制

0 人点赞