Skip to content

Scheduler

Mounted at /scheduler. Called by external schedulers (cron). No authentication.

These endpoints query D1 for eligible cases, claim rows to prevent duplicates, enqueue messages to SCHEDULER_NOTIFICATION_QUEUE, and return a processing summary. The queue consumer sends push notifications via the socket hub.

Processes reminders for cases still in draft status at least 24 hours after creation. Each eligible case receives the UCP98 draft notification once; review_cases.draft_notif_sent prevents duplicate sends.

{
"status": 1000,
"message": "Draft notifications processed successfully",
"data": {
"eligible": 1,
"enqueued": 1
}
}

GET /scheduler/sendDelayReportNotification

Section titled “GET /scheduler/sendDelayReportNotification”

Sends delay-report reminders for cases where the report is overdue. Uses review_cases.delay_report_sent for deduplication.

{
"status": 1000,
"message": "Delay report notifications processed successfully",
"data": {
"eligible": 2,
"enqueued": 2
}
}
{
"kind": "draft" | "delay_report",
"case_id": "uuid",
"user_id": "string"
}

Consumer: src/queues/scheduler-notification-consumer.ts