Форум сайта python.su
0
Добрый вечер. Назрел вопрс по Селери. Как поймать ексепшн когда общее время таска на выполнение заканчиваеться? В случае использования soft_time_limit or time_limit, есть специальные обрабтчики. А как быть с параметром expires (apply_async(expires=<time>)) ?
Отредактировано pyDev (Окт. 9, 2018 19:15:45)
Офлайн
0
Попробуйте провести вот такое исследование:
For starting scheduler; http://docs.celeryproject.org/en/latest/userguide/periodic-tasks.html#starting-the-scheduler
Crontab schedulers; http://docs.celeryproject.org/en/latest/userguide/periodic-tasks.html#crontab-schedules
You don't need task trigger. You should set crontab as crontab(minute=“*/15”)
from celery.schedules import crontab CELERYBEAT_SCHEDULE = { 'periodic_send_email': { 'task': 'cloud_app.tasks.periodic_send_email', 'schedule': crontab(minute="*/15"), }, }
celery -A proj worker -B
celery -A proj beat
Офлайн
0
romankrvУже провел, перед тем как задавать здесь вопрос. Это несовсем то, что мне нужно. Это расписание выполнения тасков, в определенное время и периодичностью. А у меня таск запускаеться в обработку после определенного входящего запросса и работает до тех пор, пока не получит нужный результат выполнения или принудительно закончиться по истечению определенного времени, внезависимости от результата. Собственно проблема задать это время. Я частично решил этот вопрос вызовом метода таска get() и перехватом исключения TaskRevokedError. Но мне это не подходит ибо при использовании даного метода, происходит ожидание его(таска) выполнения.
Попробуйте провести вот такое исследование
Офлайн