我最終用ipython並行化django腳本ipyparallel包,下面是如何做到這一點!
首先你需要安裝ipyparallel:從IPython中(或者您喜歡的任何配置文件)的默認配置文件pip install ipyparallel -U
我們需要添加這個啓動進口加載的Django:
from MyProject import settings
import django
django.setup()
這應該被添加到這樣的路徑:~/.ipython/profile_default/startup/00-load-django.py
這將加載django您需要啓動的引擎,以便ipython可以並行您的功能。
現在,讓我們開始的發動機,將能夠並行編碼上飛你的Django的腳本,一定要在主文件夾從Django項目(其中manage.py文件):ipcluster start -n X
,其中X將是想要的引擎數量(恕我直言,它將是當前計算機內核的數量+1)
請讓ipcluster在進入ipython之前完全運行。
現在,讓並行化Django的腳本,進入IPython中:
import ipyparallel as ipp
rc = ipp.Client() # Create the client that will connect to the ipython engines
lview = rc.load_balanced_view()
@lview.parallel()
def show_polls(user_range):
from poll.models import Poll
return list(Poll.objects.filter(user_id__gte=user_range, user_id__lt=user_range+100))
for res in show_polls.map(range(0, 1000, 100)):
print res
而且我們去,Django的腳本並行!請注意,我將QuerySet轉換爲列表,這是因爲返回的任何內容都必須是可選的。
的是,在意見? –
沒有,這是一個Django殼運行'./manage.py shell' – Hassek
不要ü需要從應用程序中運行呢?如果不是,你不能只創建一個自定義的Django命令? –