@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 |
|---|---|
| Free | 3 |
| Paid | 5 |
Каждая интеграция — отдельный worker, лимит считается per integration.
Локальное тестирование
Cron triggers не работают в wrangler dev. Используй:
POST /cron/trigger(через gateway) — рекомендуетсяcurl http://localhost:8787/__scheduled— напрямую на worker (не проксируется через gateway)
Exports
| Export | Тип | Описание |
|---|---|---|
createCronTriggerHandler | Function | Создает handler definition для POST /cron/trigger |
IScheduledHandlerConfig | Type | Конфигурация scheduled задачи |
ICronTriggerPayload | Type | Payload для trigger endpoint |
ICronTriggerResult | Type | Ответ trigger endpoint |
ICronTriggerEntry | Type | Результат выполнения одного handler |