定期任务在Django Celery中不起作用

时间:2013-01-06 11:44:02

标签: python django celery

这是我的周期性任务:

from celery.task import PeriodicTask
from celery.registry import tasks
from datetime import timedelta
from datetime import datetime

class MyTask(PeriodicTask):
    run_every = timedelta(minutes=1)

    def run(self, **kwargs):
        self.get_logger().info("Time now: " + datetime.now())
        print("Time now: " + datetime.now())

tasks.register(MyTask)

我在python manage.py runserver启动了我的django服务器,并用python manage.py celeryd -B启动了芹菜。

尽管根据代码仍未在命令提示符上打印,但应该打印时间。

知道这里出了什么问题吗?似乎很直接。

2 个答案:

答案 0 :(得分:1)

你应该有类似的东西:

CELERYBEAT_SCHEDULE = {
    'proc': {
        "task": "tasks.processing",
        "schedule": timedelta(seconds=60),
        },
    }

celeryconfig.py或django的settings.py中 请参阅此处的完整文档http://docs.celeryproject.org/en/latest/userguide/periodic-tasks.html

答案 1 :(得分:0)

检查系统时区是否与Django时区相同。

对于Django:从设置文件中更改它。

对于linux操作系统:改变它:ln -s /usr/share/zoneinfo/America/Chicago /etc/localtime