2015-03-17 5 views
0

Я пытаюсь создать несколько асинхронных задач с сельдереем в моем приложении ДжангоDJANGO задача сельдерей выполнена из оболочки, но это не выполняется с точки зрения

settings.py

BROKER_URL = 'django://localhost:6379/0' 
CELERY_ACCEPT_CONTENT = ['json'] 
CELERY_TASK_SERIALIZER = 'json' 
CELERY_RESULT_SERIALIZER = 'json' 

celery.py:

from __future__ import absolute_import 
import os 
from celery import Celery 
from django.conf import settings 

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'provcon.settings') 

app = Celery('provcon') 
app.config_from_object('django.conf:settings') 
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS) 

проект __init__py:

from __future__ import absolute_import 
from .celery import app as celery_app 

tasks.py:

from __future__ import absolute_import 
from celery import shared_task 
from celery import task 
from .models import Proc_Carga 
@task() 
def carga_ftp(): 
    tabla = Proc_Carga() 
    sp = tabla.carga() 

    return None 

Я называю asysnchronous задачи с моей точки зрения, как это:

from .tasks import carga_ftp 

@login_required(login_url='/login/') 
def archivoview(request): 
    usuario= request.user 
    if request.method == 'POST': 
     form = ProcFTPForm(usuario,request.POST) 
     if form.is_valid(): 
      form.save() 
      proc = Lista_Final() 
      lista = proc.archivos() 
      # call asynchronous task 
      carga_ftp.delay() 
      return HttpResponseRedirect('/resumen/') 
    else: 
     form = ProcFTPForm(usuario) 
    return render_to_response('archivo.html',{'form':form},context_instance=RequestContext(request)) 

При запуске задачи из питона manage.py оболочки. Рабочий выполняется и создавать объекты базы данных без каких-либо проблем

, но когда я пытаюсь выполнить задачу с точки зрения, не работает не выполняется

Любая идея, почему задача бежать из manage.py оболочки, но не с мнением

заранее спасибо

ответ

0

Проверьте Redis работает

$redis-cli ping 

Проверьте, сельдерей работник я S работает в интерфейсе администратора Джанго

Если не работает выполнить эту команду

celery -A provcon worker -l info 

Проверьте свою задачу из вашего приложения Джанго

Если работа запустить сельдерея работник в фоновом режиме, как daemon