Уведомления

Группа в Telegram: @pythonsu

#1 Июль 30, 2015 14:26:25

Wolko_dav
От: Ярославль
Зарегистрирован: 2014-02-12
Сообщения: 25
Репутация: +  0  -
Профиль   Отправить e-mail  

Celerybeat не работает

Вообщем решал более трудную задачу, но обнаружил, что не запускается периодические задачи под 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

Отредактировано Wolko_dav (Июль 30, 2015 14:27:21)

Офлайн

#2 Июль 30, 2015 20:51:58

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

Celerybeat не работает

Wolko_dav
И к сожалению никакого файла не создаётся…

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

Wolko_dav
celery.py
Вечная привычка нубов - называть пакеты и модули, именами которые уже заняты.



Офлайн

#3 Июль 30, 2015 20:58:24

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

Celerybeat не работает

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 (Июль 30, 2015 21:12:21)

Офлайн

#4 Июль 30, 2015 21:02:11

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

Celerybeat не работает

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



Отредактировано Budulianin (Июль 30, 2015 21:06:57)

Офлайн

#5 Июль 30, 2015 21:39:02

Wolko_dav
От: Ярославль
Зарегистрирован: 2014-02-12
Сообщения: 25
Репутация: +  0  -
Профиль   Отправить e-mail  

Celerybeat не работает

Ну накасячил, прочитал не очень внимательно. Не получалось решить данную проблему… Зачем так агрессивно реагировать? Я далеко не начинающий раработчик, замотался, запутался, спал мало… Приношу свои извинения. И спасибо за помощь.

Офлайн

#6 Июль 30, 2015 21:49:45

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

Celerybeat не работает

Wolko_dav
Зачем так агрессивно реагировать?

Для профилактики :)
Ну я не агрессивно, просто по тексту интонацию не передать)
Я немного пошутил, не обижайся. :)



Офлайн

#7 Июль 30, 2015 23:32:55

iho
Зарегистрирован: 2015-07-14
Сообщения: 10
Репутация: +  -2  -
Профиль   Отправить e-mail  

Celerybeat не работает

Budulianin
Я кстати начинал переводить документацию по celery, для тех кто не может её читать в оригинале.
Зачем? Странний ти человек

Офлайн

#8 Июль 31, 2015 09:56:12

Wolko_dav
От: Ярославль
Зарегистрирован: 2014-02-12
Сообщения: 25
Репутация: +  0  -
Профиль   Отправить e-mail  

Celerybeat не работает

Так дальше, больше. Вызвал в консоли:

celery inspect -A proj conf
Смотрю
CELERYBEAT_SCHEDULE
и он пустой. Почему?

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version