Назначение
Опиши, какую операционную или доменную задачу выполняет job: reconciliation, expiry, projection rebuild, provider polling, notification dispatch или maintenance.
Классификация
| Поле | Значение |
|---|
| Сервис | <service-name> |
| Тип job | Scheduled / Recurring / Queue worker / One-off |
| Trigger | <cron/topic/manual command> |
| Критичность | <tier> |
Расписание И Locking
| Аспект | Правило |
|---|
| Schedule | <cron/timezone> |
| Distributed lock | <lock key, ttl, owner> |
| Batch size | <number> |
| Max duration | <duration> |
Входная Модель <JobRequestModel>
| Поле | Тип | Обязательность | Источник | Описание |
|---|
TenantId | TenantId | Да/Нет | <schedule scope/manual input> | Tenant boundary. |
<FieldName> | <Type> | Да/Нет | <source> | <описание> |
Алгоритм
- Получить lock и
correlationId.
- Определить tenant/brand scope; cross-tenant scan разрешен только если описан явно.
- Загрузить batch по stable ordering key.
- Для каждой записи применить документированное бизнес-правило job (обновить состояние/проекцию, отправить уведомление — по типу job).
- Сохранить progress checkpoint и idempotency result.
- Зафиксировать факты изменений: опубликовать доменные/интеграционные события, если job меняет своё состояние (события публикуются надёжно, без потерь).
- Освободить lock и записать metrics.
Граница Транзакции
| Элемент | Правило |
|---|
| Unit of work | <per item/per batch> |
| Сохраняемое состояние | <entities/checkpoints/audit/outbox> |
| External calls | <before/after commit with retry> |
| Частичная ошибка | <continue/stop/quarantine> |
Идемпотентность И Retry
| Сценарий | Правило |
|---|
| Job restart | <resume from checkpoint> |
| Duplicate item | <dedupe key> |
| Повторяемая ошибка | <retry policy> |
| Poison item | <quarantine/DLQ/manual review> |
Наблюдаемость
| Тип | Правило |
|---|
| Logs | <started/batch processed/item failed/completed> |
| Metrics | <duration/items processed/errors/backlog/lock contention> |
| Traces | correlationId, tenantId, job run id |
| Alerts | <stuck job/backlog/error rate> |
Связанный Runbook
| Сценарий | Runbook |
|---|
<failure mode> | <link> |
Тесты
| Тест | Ожидание |
|---|
| Empty batch | <no-op success> |
| Partial failure | <checkpoint and retry behavior> |
| Duplicate run | <single lock owner/idempotent result> |
| Cancellation | <graceful stop> |
Обратные ссылки
Автоссылки: где используется этот документ.
- Фоновые задачи (10): Background Job: AppointmentTimeoutJob, Background Job: CallTimeoutReaperJob, Background Job: ChatProvisionRetryJob, Background Job: ConferenceRoomReaperJob, Background Job: DimensionBackfillJob, Background Job: FactsBackfillJob, Background Job: NotificationRetryWorker, Background Job: RecordingFinalizeRetryJob, Background Job: ReminderDispatchJob, Background Job: SlotExpirationJob
- index.md (3): Шаблоны Документации, DevStats Service (Pin.DevStats), News Service (Pin.News)