我在芹菜任务上遇到麻烦,当我的Docker容器出现此错误时
celery_1 | [2018-06-07 11:35:26,302: ERROR/MainProcess] Received unregistered task of type 'api.tasks.cl_daily_statistics'.
celery_1 | The message has been ignored and discarded.
celery_1 |
celery_1 | Did you remember to import the module containing this task?
celery_1 | Or maybe you're using relative imports?
celery_1 |
celery_1 | Please see
celery_1 | http://docs.celeryq.org/en/latest/internals/protocol.html
celery_1 | for more information.
celery_1 |
celery_1 | The full contents of the message body was:
celery_1 | b'[[], {}, {"chain": null, "chord": null, "errbacks": null, "callbacks": null}]' (77b)
celery_1 | Traceback (most recent call last):
celery_1 | File "/usr/local/lib/python3.4/site-packages/celery/worker/consumer/consumer.py", line 561, in on_task_received
celery_1 | strategy = strategies[type_]
celery_1 | KeyError: 'api.tasks.cl_daily_statistics'
但是,如果我运行这个
root@vm115056:/back_new# docker-compose exec celery bash
root@da2b33f2d7a1:/app# celery -A backend inspect registered
-> celery@da2b33f2d7a1: OK
* Daily email statistics
* FB token status
* MD token status
* OK token status
* TW token status
* VK token status
* api.tasks.message_send
* api.views.chord_result
* backend.celery.debug_task
* stats.tasks.test
它的芹菜任务,函数daily_statistics在其他模块中,在tasks.py中它只导入并包装任务装饰器
@task(name='Daily email statistics')
def cl_daily_statistics():
daily_statistics()
def daily_statistics():
try:
count_users = UserProfile.objects.count()
count_created_messages = Message.objects.count()
count_scheduled_messages = Message.objects.filter(status='scheduled').count()
count_sended_messages = Message.objects.filter(status='done').count()
email_text = 'Количество пользователей: %d\nКоличество созданных постов: %d\nКоличество запланированных постов: %d\nКоличество отправленных постов: %d\n'\
% (count_users, count_created_messages, count_scheduled_messages, count_sended_messages)
email = EmailMessage(
'Ежедневный отчёт',
email_text,
SERVER_EMAIL,
EMAIL_ADMINS
)
email.send()
except Exception as e:
logger.info('%s%s' % (exception_info(), e))
为什么芹菜说如果没有被认可的任务呢? 感谢' S