phpsoftbox / queue
Queue and worker component for the PhpSoftBox framework
Installs: 1
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/phpsoftbox/queue
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.0.1
- phpunit/phpunit: ^11.2
This package is auto-updated.
Last update: 2026-02-10 16:12:20 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');