3

在使用 ./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在单独的进程中生成单独的命令以充分利用多核服务器。

4

1 回答 1

2

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

 p = Process(target=call_command, args = ("processphoto", 1000))
于 2012-11-05T19:40:17.443 回答