Найти - Пользователи
Полная версия: Celery apply_async(expires=<time>)
Начало » Python для новичков » Celery apply_async(expires=<time>)
1
pyDev
Добрый вечер. Назрел вопрс по Селери. Как поймать ексепшн когда общее время таска на выполнение заканчиваеться? В случае использования soft_time_limit or time_limit, есть специальные обрабтчики. А как быть с параметром expires (apply_async(expires=<time>)) ?
romankrv
Попробуйте провести вот такое исследование:

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"),
},
}
And, you must be started celery with -B parameter. First, start celery worker with command;

 celery -A proj worker -B
After, start celery beat;

 celery -A proj beat
pyDev
romankrv
Попробуйте провести вот такое исследование
Уже провел, перед тем как задавать здесь вопрос. Это несовсем то, что мне нужно. Это расписание выполнения тасков, в определенное время и периодичностью. А у меня таск запускаеться в обработку после определенного входящего запросса и работает до тех пор, пока не получит нужный результат выполнения или принудительно закончиться по истечению определенного времени, внезависимости от результата. Собственно проблема задать это время. Я частично решил этот вопрос вызовом метода таска get() и перехватом исключения TaskRevokedError. Но мне это не подходит ибо при использовании даного метода, происходит ожидание его(таска) выполнения.
Может ещё есть какие-то идеи?
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