Skip to content

@happ-integ/cron

Пакет для работы с cron (scheduled) задачами в Cloudflare Workers. Автоматически добавляет POST /cron/trigger endpoint для ручного вызова scheduled handlers.

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

Когда в createIntegration() указан массив scheduled, core автоматически использует @happ-integ/cron для создания HTTP endpoint POST /cron/trigger. Этот endpoint позволяет:

  • Вызвать все scheduled handlers сразу
  • Вызвать конкретный handler по имени
  • Тестировать cron-логику локально через gateway

Автоматическое использование

Достаточно указать scheduled в createIntegration() — endpoint создастся автоматически:

typescript
// integrations/my-crm/src/index.ts
export default createIntegration({
  name: "my-crm",
  handlers: Object.values(handlers),
  migrations: MIGRATIONS,
  scheduled: [
    { cron: "0 * * * *", handlerName: "retry", payload: { triggered_by: "cron" } },
  ],
});

Результат: POST /my-crm/cron/trigger доступен автоматически.

API

POST /cron/trigger

Вызвать все scheduled handlers:

bash
curl -X POST http://localhost:3001/my-crm/cron/trigger

Вызвать конкретный handler:

bash
curl -X POST http://localhost:3001/my-crm/cron/trigger \
  -H "Content-Type: application/json" \
  -d '{"handlerName": "retry"}'

Ответ:

json
{
  "success": true,
  "triggered": [
    { "handler": "retry", "cron": "0 * * * *", "success": true }
  ]
}

Прямое использование

Если нужно создать trigger handler вручную (без автоматики core):

typescript
import { createCronTriggerHandler } from "@happ-integ/cron";

const cronTrigger = createCronTriggerHandler(
  scheduledConfigs,
  (name) => handlers.find(h => h.name === name),
);

Лимиты Cloudflare

ПланМаксимум cron triggers на worker
Free3
Paid5

Каждая интеграция — отдельный worker, лимит считается per integration.

Локальное тестирование

Cron triggers не работают в wrangler dev. Используй:

  1. POST /cron/trigger (через gateway) — рекомендуется
  2. curl http://localhost:8787/__scheduled — напрямую на worker (не проксируется через gateway)

Exports

ExportТипОписание
createCronTriggerHandlerFunctionСоздает handler definition для POST /cron/trigger
IScheduledHandlerConfigTypeКонфигурация scheduled задачи
ICronTriggerPayloadTypePayload для trigger endpoint
ICronTriggerResultTypeОтвет trigger endpoint
ICronTriggerEntryTypeРезультат выполнения одного handler