phpsoftbox/queue

Queue and worker component for the PhpSoftBox framework

Maintainers

Package info

github.com/phpsoftbox/queue

pkg:composer/phpsoftbox/queue

Statistics

Installs: 54

Dependents: 3

Suggesters: 0

Stars: 0

Open Issues: 0

dev-master 2026-03-05 11:41 UTC

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');

Оглавление