Альтернатива Heroku Scheduler: полные cron-выражения и история запусков
Heroku Scheduler поддерживает только фиксированные интервалы без истории. Inquir — полные cron-выражения, история каждого прогона, повторы при ошибке и единое рабочее пространство с API и вебхуками.
Last updated: 2026-04-20
Answer first
Direct answer
Альтернатива Heroku Scheduler: полные cron-выражения и история запусков. Полные cron-выражения проверяются при сохранении. История каждого прогона рядом с HTTP-вызовами в консоли. Повторы настраиваются на уровне пайплайна.
When it fits
- Нужны полные cron-выражения
- Важна история выполнения и оповещения об ошибках
Tradeoffs
- Если задача запускается раз в час или раз в день и не критична — простота Heroku Scheduler оправдана.
- Для прототипов и нагрузки, где потеря прогона приемлема, лёгкий планировщик удобнее.
Нагрузка и где ломается
Ограничения Heroku Scheduler
- Only 3 fixed intervals: every 10 minutes, hourly, or daily — no custom cron expressions
- Spin-up latency: a new one-off dyno starts for each run — cold container every time
- No run history: did the job run? requires log search in Papertrail or Logentries
- No retries: failed jobs do not automatically re-run
- Tied to Heroku: migrating off Heroku means rebuilding the scheduler separately
Heroku Scheduler допускает только три фиксированных интервала: каждые 10 минут, каждый час или раз в день. Нельзя написать `0 9 * * 1-5` для запуска по будням в 9 утра.
Компромиссы вендоров
Когда Heroku Scheduler достаточно
Если задача запускается раз в час или раз в день и не критична — простота Heroku Scheduler оправдана.
Для прототипов и нагрузки, где потеря прогона приемлема, лёгкий планировщик удобнее.
Как помогает Inquir
Что даёт Inquir вместо Heroku Scheduler
Полные cron-выражения проверяются при сохранении. История каждого прогона рядом с HTTP-вызовами в консоли. Повторы настраиваются на уровне пайплайна.
Секреты, переменные окружения и рантайм (Node.js, Python, Go) те же, что у остальных функций рабочего пространства.
Что получаете
Heroku Scheduler vs Inquir
Расписание
Heroku: 10 мин / час / день. Inquir: любое cron-выражение (пр. `30 8 * * 1-5`).
История
Heroku: нет встроенной. Inquir: каждый прогон — запись в консоли с логами и статусом.
Повторы
Heroku: нет. Inquir: настраиваемые повторы при ошибке.
Рантайм
Heroku: привязан к dyno стека. Inquir: Node.js 22, Python 3.12 или Go 1.22 на выбор.
Что делать дальше
Как перенести задачу с Heroku Scheduler
Написать функцию-обработчик
Экспортируйте `handler(event)` из нового файла; логика та же, что в Heroku rake task или скрипте.
Настроить расписание
Пайплайн с cron-триггером: введите выражение, сохраните — расписание подтверждается при вводе.
Добавить секреты
Переменные окружения в рабочем пространстве вместо `heroku config:set`.
Пример кода
Heroku Scheduler task → Inquir cron pipeline
Heroku runs a rake task or script as a one-off dyno. Inquir runs the same logic as a serverless function on a cron trigger with run history.
export async function handler(event) { // Runs on schedule — triggered by a cronTrigger node in a graph pipeline const cutoff = new Date(Date.now() - 30 * 86_400_000); // 30 days ago const deleted = await db.sessions.deleteOlderThan(cutoff); return { deleted, cutoff: cutoff.toISOString() }; }
Когда подходит
Когда переходить
Когда это уместно
- Нужны полные cron-выражения
- Важна история выполнения и оповещения об ошибках
Когда лучше не трогать
- Простые раз-в-час задачи без требований к истории — Heroku Scheduler достаточен
FAQ
Вопросы и ответы
Как совместить Heroku-приложение и Inquir Scheduler?
Inquir вызывает HTTP-эндпоинт Heroku-приложения по расписанию или содержит всю логику — на выбор.
Поддерживается временная зона?
Расписание задаётся в UTC. Пересчёт в свою зону — стандартная практика для cron-выражений.