当前位置: 首页 > 面试题库 >

Django可以执行多线程吗?

慕容安易
2023-03-14
问题内容

我有一个问题,那就是Django可以执行多线程工作吗?

这是我要执行的操作:单击网页上的按钮,然后model.py中开始运行某些功能,例如,从Internet上爬网一些数据,完成后它将返回给用户结果。

我想知道我必须打开一个新线程来执行model.py中的功能,有人可以告诉我该怎么做吗?非常感谢你。


问题答案:
  1. 是的,它可以多线程,但是通常使用Celery来完成。你可以在celery-django教程中阅读有关操作方法的信息。
  2. 实际上,你很少要强迫用户等待网站。虽然总比超时有好处。
    这是你正在描述的示例。
User sends request
Django receives => spawns a thread to do something else.
main thread finishes && other thread finishes 
... (later upon completion of both tasks)
response is sent to user as a package.

更好的方法:

User sends request
Django receives => lets Celery know "hey! do this!"
main thread finishes
response is sent to user
...(later)
user receives balance of transaction 


 类似资料:
  • 6.7.2.多线程执行 与在单线程中阻塞相比,更好的做法是让程序运行在多个线程之中。系统负责分配CPU时间,几个线程仿佛在同一时刻同时运行。这样可以避免某线程独占计算资源。 图6.10. 多线程执行 在例子中,我们将网络操作的相关代码放到独立的线程里面。这样我们的主线程可以避免阻塞在网络操作上,用户界面不会响应不灵。按惯例,我们一般认为主线程是运行于前台,而其它的线程都是运行于后台。这是因为前端的

  • 问题内容: 我对多线程是否可以在Python中工作感到有些困惑。 我知道对此有很多疑问,我已经阅读了很多,但是我仍然很困惑。我从自己的经验中知道,并且看到其他人在StackOverflow上发表了自己的答案和示例,说在Python中确实可以实现多线程。那么为什么每个人都说Python被GIL锁定并且一次只能运行一个线程呢?显然可以。还是我不来这里有什么区别? 许多张贴者/受访者还不断提到线程是有限

  • 这是一个关于Java中多线程的初学者问题。 根据我的理解,当创建多个(用户)线程来运行程序或应用程序时,就没有父线程和子线程的概念。它们都是独立的用户线程。 因此,如果主线程完成执行,那么另一个线程(Thread2)仍将继续执行,因为在Thread2的执行线程完成之前,它不会被JVM杀死(https://docs.oracle.com/javase/6/docs/api/java/lang/Thr

  • 主要内容:1 如何使用多个线程执行一个任务,2 如何使用多个线程执行多个任务1 如何使用多个线程执行一个任务 如果需要由多个线程执行单个任务,则只有一个run()方法,例如: 1.1 多个线程执行一个任务示例1 输出结果为: 1.2 多个线程执行一个任务示例2 输出结果为: 注意:每个线程在单独的堆栈中运行。 2 如何使用多个线程执行多个任务 如果必须通过多个线程执行多个任务,请使用多个run() 方法: 2.1 多个线程执行多个任务示例1 输出结果为: 2.2 多个线程

  • 通过on_delete选项,Django提供了各种方法来处理具有被删除对象外键的对象。 我想知道是否有一种方法,我可以做类似的事情,但有条件的。下面是一个场景。我正在使用Django1.5新的自定义用户模型,我的所有用户都有一个网站的外键。像这样: 如果一个站点被删除了,那么我更愿意删除所有链接到该站点的非超级用户(即类似KASKADE的behavoir),因为它们的存在现在已经没有意义了。但如果

  • 我确信这两个列表都不是空的,并且正在调用,但是没有调用order execution run方法....