2016-08-08 2 views
0

Я использую Django для создания веб-сервера, который контролирует цены на акции. Поэтому я хочу, чтобы задача (обновление цены) возникала каждые 5 секунд, при этом журнал консоли сообщал мне об обновлении. Почему сельдерей не напишет на консоль, как спросили?Сельдерей не выполняет запланированную, повторяющуюся задачу

Моя структура файла:

├── 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 

Моя установка сельдерея в 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 отображается как задача для запуска.

Почему я не вижу ничего напечатанного на консоли тогда?

Если вы хотите получить больше информации, то дайте мне знать.

+0

Сельдерей пишет на консоль, где вы запускаете ее, а не на консоль/stdout, откуда вы отправляете сообщение. Как вы ведете сельдерей на производстве? В качестве собственного демонизированного процесса с использованием celeryd, с супервизором, вы найдете результат в связанных журналах. Если вы можете предоставить дополнительную информацию о своей настройке. Вам также может потребоваться установить соответствующий уровень loglevel и запустить celery -l info. –

+0

Вы используете экземпляр сельдерея в режиме бит? Если нет, запланированные задачи никогда не будут подняты. –

+0

Falk, я запускаю сельдерей с терминала в моей IDE, где он отображает баннер и сбор информации. Появится ли сообщение в том же терминале? – jacksterooney

ответ

Смежные вопросы