簡體   English   中英

為什么 Celery 周期性任務不起作用? (姜戈)

[英]Why is Celery periodic task not working? (Django)

它不會返回任何錯誤,但是當運行celery -A mysite beat -l info & celery -A mysite worker -l info ,任務不會發生。 在另一個 Django 項目中嘗試相同的結構時,它工作正常。 請幫忙!

我的代碼:

mysite/settings.py (僅 CELERY 部分)

BROKER_URL = 'redis://localhost:6379'
CELERY_RESULT_BACKEND = 'redis://localhost:6379'
CELERY_ACCEPT_CONTENT = ['application/json']
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
CELERY_TIMEZONE = 'Africa/Nairobi'

我的網站/初始化.py

from __future__ import absolute_import
from .celery import app as celery_app

我的網站/芹菜.py

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

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings')
app = Celery('mysite')

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


@app.task(bind=True)
def debug_task(self):
    print('Request: {0!r}'.format(self.request))

個人/任務.py

from celery.task.schedules import crontab
from celery.decorators import periodic_task
from celery.utils.log import get_task_logger

logger = get_task_logger(__name__)


@periodic_task(
    run_every=(crontab(minute='*/1')),
    name="task_deleteFiles",
    ignore_result=True
)
def task_deleteFiles():
    logger.info("Files Deleted")

PS:如有必要,我可以發布 Celery 的輸出

顯然通過刪除 app.py 和 app.pyc (在個人文件下)芹菜工作正常。 Python 可能試圖以某種方式導入模塊,奇怪的是它沒有返回任何錯誤消息。

對於找到此頁面的其他人:如果您正在使用 Docker 並且在開發過程中更改了 celery beat 設置,那么容器很有可能具有用作緩存的舊.pyc文件。

為避免此錯誤,請從您的存儲庫中刪除所有 *.pyc 文件並將**/*.pyc添加到.dockerignore

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM