django-celery-beat 加载任务,但 celery 工作人员没有收到它

问题描述 投票:0回答:1

我的芹菜节拍和工作人员一直遇到这些问题,我的芹菜节拍创建任务,但芹菜工作人员没有收到它。我使用 elasticmq 作为代理

我的芹菜节拍日志

它不会从 celerybeat 中获取任务,这是任务的片段


app = Celery("app")
logger = get_task_logger(__name__)

CELERY_CONFIG = {
    "CELERY_TASK_SERIALIZER": "json",
    "CELERY_ACCEPT_CONTENT": ["json"],
    "CELERY_RESULT_SERIALIZER": "json",
    "CELERY_RESULT_BACKEND": None,
    "CELERY_ENABLE_UTC": True,
    "CELERY_ENABLE_REMOTE_CONTROL": False,
}

BROKER_URL = "sqs://user:password@sqs:9324/"

CELERY_CONFIG.update(
    {
        "BROKER_URL": BROKER_URL,
        "BROKER_TRANSPORT": "sqs",
        "BROKER_TRANSPORT_OPTIONS": {
            "region": "us-west-2",
            "use_ssl": False,
            "visibility_timeout": 3600,
            "polling_interval": 60,
        },
    }
)

app.conf.update(**CELERY_CONFIG)
app.config_from_object("django.conf:settings", namespace="CELERY")

这是任务,

@celery.app.task()
def beat_task() -> None:
    logger.info("Starting beat task...")
    time.sleep(2)
    logger.info("Done beat task.")
CELERY_BEAT_SCHEDULE = {
    "beat_task": {
        "task": "app.tasks.beat_task",
        "schedule": timedelta(seconds=10),
    },
}

我没有获得工作人员的记录器信息打印结果

尝试连接芹菜工人和节拍,没有工作

django celery worker celerybeat elastic-mq
1个回答
0
投票

此处未定义

celery.app
对象。这里使用名称
app
而不是
celery.app
来初始化 Celery 对象。 所以将装饰器更改为
@app.task()

app = Celery("app")
logger = get_task_logger(__name__).....

@app.task()
def beat_task().....

将代码中

celery.app
中的任何其他引用更新为
app

© www.soinside.com 2019 - 2024. All rights reserved.