Backend & ИИ

Что такое APScheduler (задачи по расписанию)

Что это

Планировщик внутри программы на Python: запускает действия в нужное время — напоминание в 9 утра, проверку раз в минуту, отчёт первого числа. В отличие от cron, живёт в самом боте и видит его данные.

Как используем

Напоминает о днях рождения и об окончании подписки, рассылает эскалации и месячный отчёт в тикет-системе, отмечает неявки в электронной очереди. Часовой пояс всегда задаём явно: Europe/Moscow.

Где это нужно бизнесу

  • Клиенту нужно напомнить о продлении или о дне рождения заранее, а не в сам день.
  • Заявку, на которую никто не реагирует, нужно эскалировать без участия человека.
  • Отчёт руководителю должен приходить первого числа сам.

Как мы это используем

  • Напоминания. Бот дней рождений раз в день в 9:00 по Москве проверяет даты и пишет за 14, 7, 3 и 1 день; бот продажи подписок в 10:00 напоминает о продлении за 3 суток и за 1 сутки.
  • Эскалация и отчёты. В тикет-системе — напоминания о выезде, эскалация, утренний дайджест, месячный отчёт и еженедельный дамп базы.
  • Чекин и неявки. В электронной очереди каждую минуту проверяется начало событий, а неявки отмечаются по таймауту.
  • Обслуживание. Чистка старых бэкапов в 00:30 и обслуживание базы по понедельникам в 03:00.

Типичные проблемы

  • Время хостинга вместо московского. Планировщик и контейнер работают в явно заданном поясе Europe/Moscow, иначе «напоминание в 9 утра» придёт в другое время.
  • Проверка раз в минуту может разминуться с событием. В электронной очереди начало события ищется в окне плюс-минус две минуты, чтобы чекин не пропустить.

Когда это не нужно

Для задачи, которая не связана с данными бота — ночной бэкап сервера, ротация логов, — достаточно cron на самом сервере.

← Все термины

Нужен сайт, бот или автоматизация?

Термины объяснили — теперь давайте к делу: расскажите о задаче, а мы переведём её на понятный план работ.