Я пытался узнать о spooler mechanism из uWSGI, и по этой причине я написал небольшое фиктивное веб-приложение с Django (версия 1.3.1), и оно работает на последних стабильная версия nginx. Все работает так, как ожидалось. Тем не менее, в одном из моих взглядов, я посылаю сообщение золотника в контейнер uWSGI и, я получаю следующее сообщение об ошибке:uwsgi не удалось найти функцию спулера
[spooler /private/tmp/receiver pid: 4115] managing request uwsgi_spoolfile_on_ozgurv.local_4165_1_0_1338280641_366596 ...
unable to find the spooler function, have you loaded it into the spooler process ?
В моей TestApp/views.py файл:
from django.http import HttpResponse
from testapp.spool import three_seconds
def call(request):
three_seconds.spool(a=1, b=2)
return HttpResponse('spooled')
В мой TestApp/spool.py файл:
from uwsgidecorators import *
@spool
def three_seconds(*args, **kwargs):
f = open('/tmp/args.data', 'a')
f.write(repr(kwargs) + '\n')
f.close()
Когда я выполнил функцию «вызов», запросив URL/звонок/в браузере, я получаю следующее сообщение об ошибке:
[spooler /private/tmp/receiver pid: 4115] managing request uwsgi_spoolfile_on_ozgurv.local_4165_1_0_1338280641_366596 ...
unable to find the spooler function, have you loaded it into the spooler process ?
uWSGI работает со следующими параметрами:
sudo uwsgi --ini ~/uwsgi.ini -b 20000
И содержание моего uwsgi.ini файла выглядит следующим образом:
[uwsgi]
socket = 127.0.0.1:8081
listen = 4096
master = true
processes = 4
pidfile = /var/run/uwsgi.pid
enable-threads = true
uid=root
gid=admin
single-interpreter = true
disable-logging = true
buffer-size= 32768
reload-on-as = 10240
reload-on-rss = 512i0
max-requests = 50000
pythonpath = /Users/ozgurv/Developer/warehouse
module = wsgi_handler
plugins = python27,spooler
spooler-processes = 1
spooler = /tmp/receiver
Я понятия не имею, почему это было жалуясь о функция спулера и почему uwsgi не смог найти. И что означает «вы загрузили его в процесс спулера»? Как можно загрузить функцию спулера в контексте процесса спулера?