简体   繁体   English

在Flask-Celery中收到类型为“”的未注册任务

[英]Received unregistered task of type “” in Flask-Celery

I'm trying to integrate celery into my app but I am getting this error saying Received unregistered task of type "". The message has been ignored and discarded. 我正在尝试将celery集成到我的应用程序中,但出现此错误,提示Received unregistered task of type "". The message has been ignored and discarded. Received unregistered task of type "". The message has been ignored and discarded. My Celery app instance is being created like so: 我的Celery应用实例的创建过程如下:

from celery import Celery


def make_celery(app):
    celery = Celery(app.import_name, broker=app.config['CELERY_BROKER_URL'])
    celery.conf.update(app.config)
    TaskBase = celery.Task

    class ContextTask(TaskBase):
        abstract = True

        def __call__(self, *args, **kwargs):
            with app.app_context():
                return TaskBase.__call__(self, *args, **kwargs)
    celery.Task = ContextTask
    return celery

My tasks file is like so: 我的任务文件如下所示:

from flask import current_app
from .. import celery

from ..models.models import MobileRedemption


@celery.task(name='process_new_redemption')
def task_process_new_redemption(red_id):
    redemption = MobileRedemption.objects(id=red_id).first()

    if redemption:
        assert isinstance(redemption, MobileRedemption)
    print ("Redemption Successful.....!")


@celery.task(name='process_delete_redemption')
def task_delete_redemption(red_id):
    current_app.logger.info("reached here!")
    redemption = MobileRedemption.objects(id=red_id).first()
    print(redemption)
    redemption.delete()

What am I doing wrong? 我究竟做错了什么?

In your Celery construction you should include your tasks files: Celery构造中,应include任务文件:

celery = Celery(app.import_name, 
                broker=app.config['CELERY_BROKER_URL'],
                include=['path.to.tasks'])

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM