bupy7/zf-queue

此包已被弃用且不再维护。未建议替代包。

Laminas 的队列模块。

2.0.0 2020-11-28 15:43 UTC

This package is auto-updated.

Last update: 2022-12-28 20:28:27 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License Build Status Coverage Status

为 Laminas 提供的抽象队列模块。模块只包含创建自定义集成的抽象层。

安装

通过 composer 安装此扩展是首选方式。

运行以下命令

$ php composer.phar require bupy7/zf-queue "*"

"bupy7/zf-queue": "*"

将以下内容添加到您的 composer.json 文件的 require 部分。

集成

预集成

创建自定义集成

待办事项

使用方法

创建任务

让我们为队列创建第一个示例任务

// YourModule/src/task/ExampleTask.php

namespace YourModule\Task;

use Bupy7\Queue\Task\TaskInterface;
use Laminas\Stdlib\ParametersInterface;
use Chat\Service\ChatService;

class SendAccountTask implements TaskInterface
{
    /**
     * @var ChatService
     */
    protected $chatService;

    public function __construct(ChatService $chatService) {
        $this->chatService = $chatService;
    }

    /**
     * @param ParametersInterface $params
     * - message (string)
     * @return bool
     */
    public function execute(ParametersInterface $params): bool
    {
        $this->chatService->send($params->get('message'));
        return true;
    }
}

运行任务

您需要将任务注册到队列管理器后:

// YouModule/config/queue.config.php

namespace YourModule;

return [
    'queue_manager' => [
        'factories' => [
            Task\ExampleTask::class => \Laminas\ServiceManager\AbstractFactory\ReflectionBasedAbstractFactory::class,
        ],
    ],
];

现在,将 queue.config.php 添加到您的配置列表中

// YourModule/src/YourModule.php

class Module
{
    public function getConfig(): array
    {
        return array_merge(
            
            // another config files
            
            require __DIR__ . '/../config/queue.config.php'
        );
    }
}

将任务添加到队列

$container->get('Bupy7\Queue\Service\QueueService')->add('YourModule\Task\ExampleTask');

运行队列

$container->get('Bupy7\Queue\Service\QueueService')->run();

许可证

zf-queue 在 BSD 3-Clause 许可证下发布。