芹菜没有执行预定的,重复的任务

时间:2016-08-08 16:25:55

标签: python django celery

我正在使用Django建立一个监控股票价格的网络服务器。因此,我希望每5秒钟执行一次任务(更新价格),并在控制台日志中告诉我有关更新的信息。为什么Celery不会按照要求写入控制台?

我的文件结构:

├── Project
│   ├── celery.py
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── manage.py
├── Application
│   ├── admin.py
│   ├── __init__.py
│   ├── migrations
│   ├── models.py
│   ├── serializers.py
│   |── tasks.py
│   |── tests.py
│   |── views.py

我的Celery在settings.py中设置:

# Celery
CELERY_RESULT_BACKEND = 'djcelery.backends.database:DatabaseBackend'
CELERY_TASK_RESULT_EXPIRES = 3600

# Celery repeating tasks
CELERYBEAT_SCHEDULE = {
    'notify-every-10-seconds': {
         'task': 'Main.tasks.update',
         'schedule': timedelta(seconds=10),
    },
}

任务本身:

from __future__ import absolute_import

from celery import shared_task
from .models import NasdaqShare


@shared_task
def update():
    print('Updated!')

当使用Django数据库运行芹菜工作者网络时,它甚至会将Application.tasks.update列为要运行的任务。

为什么我没有看到任何东西被打印到控制台呢?

如果您想了解更多信息,请与我们联系。

1 个答案:

答案 0 :(得分:0)

确保您运行celery beat scheduler,例如celery -A Project beat