Форум сайта python.su
Вообщем решал более трудную задачу, но обнаружил, что не запускается периодические задачи под celery. Создал тестовый проект и создал там единственную задачу. Структура проекта:
proj:
__init__.py
celery.py
settigns.py
tasks.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()
# 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")
# coding: utf-8 CELERYBEAT_SCHEDULE = { 'add-every-30-seconds': { 'task': 'tasks.test', 'schedule': 5 }, } CELERY_TIMEZONE = 'UTC'
celery beat -A proj -l debug
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)
Офлайн
Wolko_dav
И к сожалению никакого файла не создаётся…
Wolko_davВечная привычка нубов - называть пакеты и модули, именами которые уже заняты.
celery.py
Офлайн
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)
Офлайн
Wolko_davПотому что пользуешься инструментом, предварительно не прочитав документацию.
Вообщем вопрос, почему не работает CELERYBEAT_SCHEDULE…
Отредактировано Budulianin (Июль 30, 2015 21:06:57)
Офлайн
Ну накасячил, прочитал не очень внимательно. Не получалось решить данную проблему… Зачем так агрессивно реагировать? Я далеко не начинающий раработчик, замотался, запутался, спал мало… Приношу свои извинения. И спасибо за помощь.
Офлайн
Wolko_dav
Зачем так агрессивно реагировать?
Офлайн
BudulianinЗачем? Странний ти человек
Я кстати начинал переводить документацию по celery, для тех кто не может её читать в оригинале.
Офлайн
Так дальше, больше. Вызвал в консоли:
celery inspect -A proj conf
CELERYBEAT_SCHEDULE
Офлайн