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

看到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 採用署名-非商业性使用-同样方式共享协议

时间: 2024-10-20 13:27:34

[django] 利用多线程添加异步任务的相关文章

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

看到django异步大家的反应应该是celery这种消息队列组件,现在用的最多的最推荐的也是这种方式.然而我这需求就是请求来了,执行一个小程序,但是又不能确定这个小程序啥时候执行完,响应又要及时,丢给队列处理当然可以,但是为了简单,决定直接起个线程跑跑. (当然这只是实验,应用规模也很小,如果并发高,会有很多问题) 从view.py中截取了这段代码: @login_required def search_area(request): prints = PrintThread() prints.s

Android Learning:多线程与异步消息处理机制

在最近学习Android项目源码的过程中,遇到了很多多线程以及异步消息处理的机制.由于之前对这块的知识只是浅尝辄止,并没有系统的理解.但是工程中反复出现让我意识到这个知识的重要性.所以我整理出这篇博客,主要介绍了线程和异步处理机制的意义和用法,目的在于帮助初学者能够加深对异步消息处理机制的理解,在实际Android工程中能够更多地使用AsyncTask工具类在子线程中进行UI更新. 一.Android当中的多线程[1] 在Android当中,当一个应用程序的组件启动的时候,并且没有其他的应用程序

初步谈谈 C# 多线程、异步编程与并发服务器

多线程与异步编程可以达到避免调用线程异步阻塞作用,但是两者还是有点不同. 多线程与异步编程的异同: 1.线程是cpu 调度资源和分配的基本单位,本质上是进程中的一段并发执行的代码. 2.线程编程的思维符合正常人的思维习惯,线程中的处理程序依然是顺序执行,所以编程起来比较方便,但是缺点也是明显的,多线程的使用会造成多线程之间的上下文切换带来系统花销,并且共享变量之间也是会造成死锁的问题. 3.因为异步操作无须额外的线程负担,并且使用回调的方式进行处理,在设计良好的情况下,处理函数可以不必使用共享变

一位牛人的多线程和异步调用文章

转自小顾问原文 一位牛人的多线程和异步调用文章 首先申明:这篇文章不是我写的,我看到的一位牛人的,自己慢慢的消化了…… 摘要:本章讨论与智能客户端应用程序中多线程的使用有关的问题.为了最大限度地提高智能客户端应用程序的响应能力,需要仔细考虑如何和何时使用多线程.线程可以大大提高应用程序的可用性和性能,但是当您确定它们将如何与用户界面交互时,需要对其进行非常仔细的考虑. 线程是基本执行单元.单线程执行一系列应用程序指令,并且在应用程序中从头到尾都经由单一的逻辑路径.所有的应用程序都至少有一个线程,

宇哥带你飞之Android多线程与异步任务--第一篇

本人工作已经一年多了,具体点说已经一年多3个月了,实习的早,过早的受到了社会的蹂躏.今年6月多份毕业了,然后就到了一个比较大的公司,具体名字就不说了,就是妹子超级超级多....在学校学的是游戏,cx之类的,但是鬼使神差的毕业后跟着同学就干上了应用,多亏了我的第一个老板--李金波,超级感谢~ 好了,废话不多说了,接下来就开启Android多线程与异步任务的学习吧,由于内容有点多,分几篇博客来和大家扯淡~ 学习Android当然就避免不了学习java,java中也有多线程还有线程之间的同步问题等等~

[.net 面向对象程序设计进阶] (18) 多线程(Multithreading)(三) 利用多线程提高程序性能(下)

[.net 面向对象程序设计进阶] (18) 多线程(Multithreading)(二) 利用多线程提高程序性能(下) 本节导读: 上节说了线程同步中使用线程锁和线程通知的方式来处理资源共享问题,这些是多线程的基本原理. .NET 4.0以后对多线程的实现变得更简单了. 本节主要讨论.NET4.0多线程的新特性——使用Task类创建多线程. 读前必备: A. LINQ使用  [.net 面向对象编程基础] (20) LINQ使用 B. 泛型          [.net 面向对象编程基础] (

第一章 管理程序流 之 实现多线程和异步处理

1. 概述 本章主要讲解.net4.5如何实现多线程和异步处理的相关内容. 2. 主要内容 2.1 理解线程 ① 使用Thread类   public static class Program   {       public static void ThreadMethod()       {           for (int i = 0; i < 10; i++)           {               Console.WriteLine(“ThreadProc: {0}”,

django 利用钉钉 扩展用户系统

django 利用钉钉 扩展用户系统 用户架构图 说明 以django 自带 user,group 为基础 ,结合 钉钉用户系统 进行结合,以达到能够满足实际需求. 组关系: 钉钉部门组 通过 多对多 关系到 系统Group. 然后设置计划任务,如果 有钉钉部门组 关联到了 系统组,就把该用户组下的 用户 自动添加相应的 系统组. 组关系2: 自定义权限组 通过 多对多 关系到 系统Group. 根据 用户 系统组 的名字 查询到 自定义权限信息,进行判断 版本 Django==2.0.9 js

利用多线程编写 生产者-消费者 关系

package ace; import java.util.ArrayList; import java.util.Timer; import java.util.TimerTask; /** * 利用多线程编写 生产者-消费者 关系 */ public class ProductionAndConsumption { private static ArrayList<String> products = new ArrayList<String>(); // 产品 private