phpsoftbox / queue
Queue and worker component for the PhpSoftBox framework
dev-master
2026-03-05 11:41 UTC
Requires
- php: ^8.4
- phpsoftbox/database: dev-master
- psr/log: ^3.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.93
- phpsoftbox/cli-app: dev-master
- phpsoftbox/cs-fixer: ^1.1.0
- phpunit/phpunit: ^11.2
This package is auto-updated.
Last update: 2026-03-05 11:42:01 UTC
README
About
phpsoftbox/queue — компонент очередей и воркера для PhpSoftBox. Включает минимальный контракт очереди, модель job, in-memory очередь и адаптер для работы с БД.
Ключевые свойства:
- контракт
QueueInterface - модель
QueueJobс попытками Workerс ретраями и обработкой ошибокDatabaseDriverдля использования БД через компонент Database- поддержка приоритета и отложенной доступности (available_datetime)
- запись задач, исчерпавших попытки, через
FailedJobStoreInterface
Quick Start
use PhpSoftBox\Queue\Drivers\InMemoryDriver; use PhpSoftBox\Queue\QueueJob; use PhpSoftBox\Queue\Worker; $queue = new InMemoryDriver(); $queue->push(QueueJob::fromPayload(['type' => 'email', 'id' => 10])); $worker = new Worker($queue, maxAttempts: 3); $worker->run(function (mixed $payload): void { // обработка задания });
Очередь в БД:
use PhpSoftBox\Database\Configurator\DatabaseFactory; use PhpSoftBox\Database\Connection\ConnectionManager; use PhpSoftBox\Queue\Drivers\DatabaseDriver; use PhpSoftBox\Queue\DatabaseQueueSchema; $factory = new DatabaseFactory([ 'connections' => [ 'default' => 'main', 'main' => [ 'read' => ['dsn' => 'sqlite:///:memory:'], 'write' => ['dsn' => 'sqlite:///:memory:'], ], ], ]); $queue = new DatabaseDriver(new ConnectionManager($factory), new DatabaseQueueSchema(), 'main');