您的位置:首页 > 编程语言 > Go语言

[django] 利用多线程增加异步任务

2014-12-16 15:49 316 查看
看到django异步大家的反应应该是celery这种消息队列组件,现在用的最多的最推荐的也是这种方式。然而我这需求就是请求来了,执行一个小程序,但是又不能确定这个小程序啥时候执行完,响应又要及时,丢给队列处理当然可以,但是为了简单,决定直接起个线程跑跑。 (当然这只是实验,应用规模也很小,如果并发高,会有很多问题)

从view.py中截取了这段代码:

@login_required
def search_area(request):
prints = PrintThread()
prints.start()

return retrieve(request, 'Area', 'areasearche.html', [{'name':'areaname', 'mode': 'contains'}])

##通过thread 实现django中
import threading
import time
class PrintThread(threading.Thread):
def run(self):
print "start.... %s"%(self.getName(),)
for i in range(30):
time.sleep(1)
print i
print "end.... %s"%(self.getName(),)


从执行的结果来看是可以完成需求的,
start.... Thread-7
0
1
2
[24/Oct/2014 15:09:30] "GET /media/js/hawk.js HTTP/1.1" 304 0
3
...
26
27
28
29
end.... Thread-7

对于定时延迟任务,还有高并发的异步任务还用mq来的方面。

本文出自 “orangleliu笔记本” 博客,转载请务必保留此出处http://blog.csdn.net/orangleliu/article/details/41961295
作者orangleliu 采用署名-非商业性使用-相同方式共享协议
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  django 异步 线程 任务
相关文章推荐