marko / queue
Queue interfaces and infrastructure for Marko Framework
0.13.0
2026-11-03 18:34 UTC
Requires
- php: ^8.5
- marko/clock: 0.13.0
- marko/config: 0.13.0
- marko/core: 0.13.0
- marko/encryption: 0.13.0
- marko/log: 0.13.0
Requires (Dev)
- marko/cache: 0.13.0
- marko/cache-array: 0.13.0
- marko/cache-redis: 0.13.0
- marko/testing: 0.13.0
- pestphp/pest: ^4.0
Suggests
- ext-pcntl: Required for queue:work job timeouts and graceful SIGTERM/SIGINT shutdown
- marko/cache: Atomic locks for UniqueJobInterface jobs and the cache restart signal (queue.restart_signal_driver = cache); pair it with marko/cache-redis so locks and restarts are shared by every server
Provides
None
Conflicts
None
Replaces
None
README
Queue interfaces and worker infrastructure -- defines how jobs are dispatched and processed, not which backend stores them.
Installation
composer require marko/queue
Note: You also need a driver package. See marko/queue-sync, marko/queue-database, or marko/queue-rabbitmq.
Quick Example
use Marko\Queue\Job; use Marko\Queue\QueueInterface; class SendWelcomeEmail extends Job { public function __construct( private readonly string $email, ) {} public function handle(): void { // Send the email... } } // Dispatch via QueueInterface $queue->push(new SendWelcomeEmail('user@example.com'));
Documentation
Full usage, API reference, and examples: marko/queue