定制 phpsoftbox/queue 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

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

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-02-10

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固