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

dev-master 2026-02-10 16:10 UTC

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

Оглавление