Skip to main content
 首页 » 编程设计

python之django 如何在 view.py 中使用多线程

2024年08月28日31lovecherry

我对 django 有疑问, 就好像,当用户提交一些数据时,它会进入view.py进行处理,最终会到达成功页面。

但是这个过程太长了,我不想让用户等那么久,我想要的是用户提交数据后,马上就到成功页面,然后服务器再处理数据返回成功页面。

你能告诉我如何处理吗? 那是我的代码,但我不知道为什么它不起作用。

网址.py

from django.conf.urls import patterns, url 
from hebeu.views import handleRequest 
 
urlpatterns = patterns('', 
    url(r'^$', handleRequest), 
) 

View .py

def handleRequest(request): 
    if request.method == 'POST': 
        response = HttpResponse(parserMsg(request)) 
        return response 
    else: 
        return None 
 
def parserMsg(request): 
    rawStr = smart_str(request.body) 
    msg = paraseMsgXml(ET.fromstring(rawStr)) 
    queryStr = msg.get('Content') 
    openID = msg.get('FromUserName') 
    arr = smart_unicode(queryStr).split(' ') 
    #start a new thread 
    cache_classroom(openID,arr[1],arr[2],arr[3],arr[4]).start() 
 
    return "success" 

我的英语不好,希望你能理解。

请您参考如下方法:

看看Celery ,它是一个分布式任务队列,可以完美处理您的情况。有一些设置可以让一切正常工作,但一旦完成,Celery 就非常容易使用。

要与 Django 集成,请从这里开始:http://docs.celeryproject.org/en/latest/django/index.html