Skip to content

v1.0.0

Latest

Choose a tag to compare

@SoloPHP SoloPHP released this 19 May 17:41
  • Atomic claim via FOR UPDATE SKIP LOCKED (MySQL 8+, MariaDB 10.6+, PostgreSQL 9.5+); on SQLite the single-writer model provides the same guarantee.
  • Visibility timeout — jobs whose worker died (crashed, OOM-killed, timed out) are automatically returned to the queue.
  • Exponential backoff — retries are rescheduled with baseDelay * 2^retry_count, capped at 1 hour.
  • No long transactions — handle() runs outside any transaction, so external side-effects cannot be rolled back.
  • Typed jobs via JobInterface + PSR-11 dependency injection through createFromContainer.
  • UTC timestamps — all DB times written in UTC regardless of the PHP default timezone.
  • PSR-3 logging with full-fidelity error context — Throwables are forwarded under the PSR-3 exception key (trace + previous chain preserved for structured log sinks).
  • Observability hooks via JobQueueListener — onClaimed / onCompleted / onFailed / onReclaimed events for metrics, tracing, or context enrichment.
  • Long-running worker with signal-driven graceful shutdown and max-jobs / max-runtime / max-memory limits.
  • Operational API — reclaimStuck() (callable from a separate cron), getFailedJobs(), retry().
  • Optional deleteOnSuccess and LockGuard for preventing overlapping workers.