3

./manage.pyシェルを使用してコードを実行しているときに、理解できないことがありました。

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()プロセスで実行したり、他の変数を設定したりする機会はありません。インスタンス化時に実行されるようです。ビューでコードを使用しようとすると、複数のプロセスがまったく生成されないように見えます。すべてが1つのコアに残ります。

私は何を間違っているのですか、それとも誤解していますか?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 に答える