Найти - Пользователи
Полная версия: Celerybeat не работает
Начало » Python для экспертов » Celerybeat не работает
1
Wolko_dav
Вообщем решал более трудную задачу, но обнаружил, что не запускается периодические задачи под celery. Создал тестовый проект и создал там единственную задачу. Структура проекта:

proj:
__init__.py
celery.py
settigns.py
tasks.py
celery.py:

# coding: utf-8
from __future__ import absolute_import
from celery import Celery
app = Celery("tasks", broker="amqp://guest:guest@localhost//")
if __name__ == "__main__":
    app.config_from_object("proj.settings")
    app.start()
tasks.py:

# coding: utf-8
from __future__ import absolute_import
from proj.celery import app
@app.task
def test():
    with open("test.txt", "w+") as fd:
        fd.write("Task `test` run")
settings.py:
# coding: utf-8
CELERYBEAT_SCHEDULE = {
    'add-every-30-seconds': {
        'task': 'tasks.test',
        'schedule': 5
    },
}
CELERY_TIMEZONE = 'UTC'
Запускаю celery вот так:
celery beat -A proj -l debug
. И к сожалению никакого файла не создаётся… Проект без django. Вообщем вопрос, почему не работает CELERYBEAT_SCHEDULE… Вот, что пишет в консоль при запуске:

celery beat v3.1.18 (Cipater) is starting.
__    -    ... __   -        _
Configuration ->
    . broker -> amqp/guest:**@localhost:5672//
    . loader -> celery.loaders.app.AppLoader
    . scheduler -> celery.beat.PersistentScheduler
    . db -> celerybeat-schedule
    . logfile -> [stderr]@%DEBUG
    . maxinterval -> now (0s)
[2015-07-30 12:30:49,934: DEBUG/MainProcess] Setting default socket timeout to 30
[2015-07-30 12:30:49,934: INFO/MainProcess] beat: Starting...
[2015-07-30 12:30:49,946: DEBUG/MainProcess] Current schedule:
<Entry: celery.backend_cleanup celery.backend_cleanup() <crontab: 0 4 * * * (m/h/d/dM/MY)>
[2015-07-30 12:30:49,946: DEBUG/MainProcess] beat: Ticking with max interval->5.00 minutes
[2015-07-30 12:30:49,961: DEBUG/MainProcess] Start from server, version: 0.9, properties: {u'informaopyright (C) 2007-2013 GoPivotal, Inc.', u'capabilities': {u'exchange_exchange_bindings': True, u'co: True, u'consumer_cancel_notify': True, u'publisher_confirms': True}, u'platform': u'Erlang/OTP', u
[2015-07-30 12:30:49,963: DEBUG/MainProcess] Open OK!
[2015-07-30 12:30:49,964: DEBUG/MainProcess] beat: Waking up in 5.00 minutes.
[2015-07-30 12:35:50,026: DEBUG/MainProcess] beat: Waking up in 5.00 minutes
Budulianin
Wolko_dav
И к сожалению никакого файла не создаётся…

И кто его будет создавать?
Ты понимаешь что такое celery-beat ?

Wolko_dav
celery.py
Вечная привычка нубов - называть пакеты и модули, именами которые уже заняты.
Budulianin
celery beat is a scheduler. It kicks off tasks at regular intervals, which are then executed by the worker nodes available in the cluster.



О да… Это конечно же в раздел для экспертов.
Я кстати начинал переводить документацию по celery, для тех кто не может её читать в оригинале.
Но времени свободного мало, так и не закончил.
Budulianin
Wolko_dav
Вообщем вопрос, почему не работает CELERYBEAT_SCHEDULE…
Потому что пользуешься инструментом, предварительно не прочитав документацию.
А потом грешишь на celery - “Celery beat не работает”.
А он честно работает. А ты про него так пишешь. Короче после таких заявлений, ты просто обязан внести денежный, добровольный взнос в проект celery.
Wolko_dav
Ну накасячил, прочитал не очень внимательно. Не получалось решить данную проблему… Зачем так агрессивно реагировать? Я далеко не начинающий раработчик, замотался, запутался, спал мало… Приношу свои извинения. И спасибо за помощь.
Budulianin
Wolko_dav
Зачем так агрессивно реагировать?

Для профилактики :)
Ну я не агрессивно, просто по тексту интонацию не передать)
Я немного пошутил, не обижайся. :)
iho
Budulianin
Я кстати начинал переводить документацию по celery, для тех кто не может её читать в оригинале.
Зачем? Странний ти человек
Wolko_dav
Так дальше, больше. Вызвал в консоли:
celery inspect -A proj conf
Смотрю
CELERYBEAT_SCHEDULE
и он пустой. Почему?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB