Releases: SoloPHP/Job-Queue
Releases · SoloPHP/Job-Queue
Release list
v1.0.0
- 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 throughcreateFromContainer. - 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
exceptionkey (trace + previous chain preserved for structured log sinks). - Observability hooks via
JobQueueListener—onClaimed/onCompleted/onFailed/onReclaimedevents 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
deleteOnSuccessandLockGuardfor preventing overlapping workers.