Erro de aipo: tarefa não registrada recebida do tipo 'test_post'

0

Estou recebendo o seguinte erro no meu log de aipo:

[2018-05-04 23:33:42,186: ERROR/MainProcess] Received unregistered task of type 'test_post'.
The message has been ignored and discarded.

Did you remember to import the module containing this task?
Or maybe you're using relative imports?

Please see
http://docs.celeryq.org/en/latest/internals/protocol.html
for more information.

The full contents of the message body was:
'[[], {}, {"callbacks": null, "errbacks": null, "chord": null, "chain": null}]' (77b)
Traceback (most recent call last):
  File "/home/james/postr/env/lib/python3.5/site-packages/celery/worker/consumer/consumer.py", li$
    strategy = strategies[type_]
KeyError: 'test_post'

post_jobs é minha única tarefa de aipo, e está em outro módulo (não no módulo principal do aplicativo), o que pode ser o motivo pelo qual estou encontrando esse problema. Eu fui forçado a fazer isso, pois meu modelo não podia ser importado do aplicativo principal. Meu conf de aipo se parece com isso ( post não é o módulo principal):

[program:postr-celery]
command=/home/james/postr/env/bin/celery -A post worker --loglevel=INFO
directory=/home/james/postr
user=james
numprocs=1
stdout_logfile=/var/log/supervisor/celery.log
stderr_logfile=/var/log/supervisor/celery.log
autostart=true
autorestart=true
startsecs=10

; Need to wait for currently executing tasks to finish at shutdown.
; Increase this if you have very long running tasks.
stopwaitsecs = 600

stopasgroup=true

Eu posso receber a tarefa com sucesso:

noentanto,quandoeucomeçominhabatidadeaipoviacelery-Adraft1beat:

meulogdeaiporetornaoerro(Receivedunregisteredtaskoftype'test_post'):

Eutenteicomeçarabaterceleryviacelery-Apostbeat,masissonãomudanada.

Minhasconfiguraçõessãoassim:

CELERY_BROKER_URL='amqp://{}:{}@174.138.62.249/vhost'.format(config('RABBIT_USER'),config('RABBIT_PW'))CELERY_BEAT_SCHEDULER="django_celery_beat.schedulers.DatabaseScheduler"
CELERYBEAT_SCHEDULE = {
    'test_post': {
        'task': 'post.tasks.test_post',
        'schedule': crontab(minute=40),
    }
}

post / tasks.py

@app.task
def test_post():
    from .models import Post
    for i in Post.objects.all():
        if i.entered_category == "test":
            i.entered_category = "not_test"
            i.save()
    return HttpResponseRedirect('/')

post / celery.py

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'draft1.settings')
app = Celery(broker=CELERY_BROKER_URL)
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()

draft1 / celery.py

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'draft1.settings')
app = Celery("draft1", broker=CELERY_BROKER_URL)
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()

Alguma ideia de porque estou recebendo o erro e como posso corrigi-lo?

    
por Zorgan 07.05.2018 / 13:02

0 respostas