Перейти к основному содержимому

Как это работает

Jobs are registered in a central registry and executed via three triggers:

Cron (HTTP) Vercel cron hits /api/cron/[job]
Scheduler setInterval in persistent containers
Manual Admin dashboard at /admin/jobs

Every execution is logged to PostgreSQL with status, duration, trigger type, and result count. The runJob() wrapper handles timing and fire-and-forget logging — if the DB insert fails, the job result is still returned.

Зарегистрированные задания

session-cleanup registered
log-cleanup registered
notification-cleanup registered
telegram-token-cleanup registered
discord-token-refresh registered
analytics-cleanup registered
analytics-rollup registered

Последние запуски

ЗаданиеСтатусТриггерДлит.РезультатВремя
analytics-cleanupsuccessscheduler286ms022h ago
analytics-rollupsuccessscheduler184ms422h ago
grant-request-expirysuccessscheduler100ms022h ago
notification-cleanupsuccessscheduler103ms022h ago
discord-token-refreshsuccessscheduler100ms022h ago
log-cleanupsuccessscheduler106ms2822h ago
telegram-token-cleanupsuccessscheduler84ms022h ago
session-cleanupsuccessscheduler72ms022h ago
analytics-rollupsuccessscheduler252ms1761d ago
grant-request-expirysuccessscheduler118ms01d ago

Ключевые файлы

Registry src/lib/server/jobs/index.ts
Runner src/lib/server/jobs/runner.ts
Scheduler src/lib/server/jobs/scheduler.ts
Cron route src/routes/api/cron/[job]/+server.ts
Schema src/lib/server/db/schema/jobs/job-execution.ts
Admin src/routes/admin/jobs/+page.svelte