Планировщик задач (cron)
Что работает по расписанию и как это включить
Часть функций Yonote выполняется по расписанию. Само приложение расписание не запускает: его нужно запускать снаружи, вызывая два адреса приложения. Без этого шага не будут приходить уведомления календаря (начало и окончание событий), не будет работать плановая очистка и напоминания о приглашениях.
| Что делает | Адрес | Как часто |
|---|---|---|
| Уведомления календаря: срабатывание событий в начале и конце | /api/cron.calendar_events | каждую минуту |
| Плановые задачи: очистка удалённых документов, просроченных файловых операций и журналов вебхуков, напоминания о приглашениях | /api/cron.schedule | раз в час |
Каждый запрос — POST с JSON, где в поле token передаётся значение UTILS_SECRET из вашего .env. Без верного токена приложение ответит ошибкой.
Настройка через cron на сервере
Откройте расписание:
crontab -eИ добавьте две строки. Замените domain.ru на свой домен (с https, если настроен HTTPS) и ВАШ_UTILS_SECRET на значение из .env:
* * * * * curl -fsS -X POST http://domain.ru/api/cron.calendar_events -H 'Content-Type: application/json' -d '{"token":"ВАШ_UTILS_SECRET"}' > /dev/null
0 * * * * curl -fsS -X POST http://domain.ru/api/cron.schedule -H 'Content-Type: application/json' -d '{"token":"ВАШ_UTILS_SECRET","limit":200}' > /dev/nullПроверка
Выполните запрос вручную:
curl -X POST http://domain.ru/api/cron.calendar_events -H 'Content-Type: application/json' -d '{"token":"ВАШ_UTILS_SECRET"}'Ответ {"success":true} значит, что планировщик подключён верно. Ошибка авторизации значит, что токен не совпадает с UTILS_SECRET.
Для Kubernetes сделайте то же самое через CronJob с curl, вызывая эти же адреса.