phpsoftbox/queue
Composer 安装命令:
composer require phpsoftbox/queue
包简介
Queue and worker component for the PhpSoftBox framework
README 文档
README
About
phpsoftbox/queue — компонент очередей и воркера для PhpSoftBox. Включает минимальный контракт очереди, модель job, in-memory очередь и адаптер для работы с БД.
Ключевые свойства:
- контракт
QueueInterface - модель
QueueJobс попытками Workerс ретраями и обработкой ошибокDatabaseDriverдля использования БД через компонент Database- поддержка приоритета и отложенной доступности (available_datetime)
- поддержка mutex-ключей на job для ограничения параллельных запусков
- запись задач, исчерпавших попытки, через
FailedJobStoreInterface - прогресс выполнения через
ProgressAwareInterface/ProgressStoreInterface - события жизненного цикла воркера:
before,after,onStatusChange - поддержка отмены для задач с флагом
is_cancellable
Quick Start
use PhpSoftBox\Queue\Drivers\InMemoryDriver; use PhpSoftBox\Queue\ProgressAwareInterface; use PhpSoftBox\Queue\QueueJob; use PhpSoftBox\Queue\Worker; $queue = new InMemoryDriver(); $queue->push( QueueJob::fromPayload(['type' => 'email', 'id' => 10]) ->withMutex('tenant:1:company:15:import', 7200), ); $worker = new Worker($queue, maxAttempts: 3); $worker->run(function (mixed $payload, QueueJob $job, ProgressAwareInterface $progress): void { $progress->setTotal(100); $progress->increment(); // обработка задания });
Очередь в БД:
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');
Оглавление
统计信息
- 总下载量: 76
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 3
- 依赖项目数: 4
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-02-10