python - Django 多处理异常

标签 python django multithreading multiprocessing multiprocess

在使用 ./manage.py shell 练习一些代码时,我遇到了一些我不明白的事情。

Python 2.6.6 (r266:84292, Sep 11 2012, 08:34:23)
[GCC 4.4.6 20120305 (Red Hat 4.4.6-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from multiprocessing import Process
>>> from django.core.management import call_command
>>> p = Process(target=call_command("processphoto", 1000))
Successfully populated photo "1000"  (This is output from my processphoto command)
>>>

我从来没有机会执行 p.start() 或在流程中设置任何其他变量。它似乎在实例化时执行。当我尝试使用我认为的代码时,我似乎根本没有生成多个进程,所有内容都保留在一个核心上。

我做错了什么,或者误解了什么?我想在单独的进程中生成单独的 manage.py processphoto 命令以充分利用多核服务器。

最佳答案

call_command(...) 调用函数。相反,将函数对象 call_command 及其参数分别传递给 Process:

 p = Process(target=call_command, args = ("processphoto", 1000))

关于python - Django 多处理异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13239087/

相关文章:

python - 如何将 "Tue Feb 25 2014 00:00:00 GMT+0530 (IST)"转换为 python 日期时间对象?

移动应用程序上的 Django session

java - Thread 的 run() 方法中的最终枚举

multithreading - 黑莓浏览器字段句柄导航请求阻塞

c++ - QThread:线程仍在运行时被销毁,QMutex 被销毁

python - scipy.stats.gamma 库中的参数 a 是什么

Python将整数四舍五入到下一百

python - SQL 查询的标准 Python 模块是什么?

django - 结构部署问题

django - 如何在 Django 中为(基于类的)通用对象列表创建过滤器表单?