# Custom executor теряет или повторяет job

RuleID: portfolio.async.20@1.0.0
Status: recovery-required
Catalog snapshot: 4558458d

Accepted subset is bounded. If required evidence is incomplete, the affected result is unknown.

## V-ASYNC-20 — Custom executor теряет или повторяет job

Executor должен доставить каждый принятый job ровно один раз. Потеря зависает задачу, повторное исполнение нарушает runtime-контракт.

Status: recovery-required

Scope notes: Source producer требует восстановления и квалификации. Если необходимые факты не получены, результат — unknown, а не «ошибки нет».

### Before (illustrative)

```swift
// enqueue: при перегрузке отбросить job.
// Или запустить один job двумя workers.
```

### After (illustrative)

```swift
// Очередь обеспечивает единственное владение job
// и ровно один запуск каждого принятого элемента.
```

Boundary: Известная передача job другому владельцу допустима

---
Language: ru
Canonical: https://docs.swift-analyzer.com/catalog/portfolio.async.20/
Source revision: 4558458d
