Pular para o conteúdo

Jobs e caches

A fila mantém histórico e claims em background_jobs. Cada worker adquire jobs por claim condicionado a status/lease, registra worker_id, lease_until e heartbeat_at, ordena prioridade/data, deduplica por chave e persiste tentativas. O agendamento e alguns caches continuam locais ao processo.

stateDiagram-v2
[*] --> queued
queued --> running
queued --> cancelled
running --> completed
running --> queued: retry automático
running --> failed: tentativas esgotadas
failed --> queued: retry manual
cancelled --> queued: retry manual

Jobs em execução dependem de timeout/lease; cancelamento cooperativo de processos externos ainda deve ser tratado pelo handler específico.

CacheLocalPolítica/limiteInvalidação
catálogo/capas em memóriabackend MapCACHE_TTLrefresh, login/logout, restore
metadata APIRedis60 dias positivo/3 negativo por padrãoTTL, refresh e manutenção
capas derivadasdisco + cache_entriesCACHE_MAX_GB, LRUfingerprint, versão, cleanup
índices de comicsmemória do reader servicefingerprintmudança/reinício
TanStack Querynavegadorstale 60s, gc 15minmutations/refetch
PWA shell/catalog/capas/assetsCache Storageversões e até 100/200/80 entradasversão do SW
offline booksCache Storage + IndexedDBexplícito/quota do navegadorremoção do usuário
páginas PDF/comicmemória do readeratual e vizinhasnavegação/cleanup

Nenhum cache substitui PostgreSQL ou arquivo fonte.