utopia-php / queue

一个强大的任务队列。

0.8.0 2024-09-05 16:33 UTC

README

Build Status Total Downloads Discord

Utopia Queue 是一个强大的队列库。这个库的目标是尽可能简单、易于学习和使用。该库由 Appwrite 团队 维护。

尽管这个库是 Utopia 框架 项目的一部分,但它不依赖于任何其他库,可以独立于任何其他 PHP 项目或框架使用。

入门指南

使用 composer 安装

composer require utopia-php/queue

在您的应用程序中初始化

<?php

require_once __DIR__ . '/../../vendor/autoload.php';

// Create a worker using the Swoole adapter
use Utopia\Queue;
use Utopia\Queue\Message;

$connection = new Queue\Connection\Redis('redis');

if ($connection->ping()) {
    var_dump('Connection is ready.');
} else {
    var_dump('Connection is not ready.');
}

$adapter = new Queue\Adapter\Swoole($connection, 12, 'my-queue');
$server = new Queue\Server($adapter);

$server
    ->job()
    ->inject('message')
    ->action(function (Message $message) {
        var_dump($message);
    });

$server
    ->error()
    ->inject('error')
    ->action(function ($error) {
        echo $error->getMessage() . PHP_EOL;
    });

$server
    ->workerStart()
    ->action(function () {
        echo "Worker Started" . PHP_EOL;
    });

$server->start();


// Enqueue messages to the worker using the Redis adapter
$connection = new Redis('redis', 6379);
$client = new Client('my-queue', $connection);

$client->enqueue([
    'type' => 'test_number',
    'value' => 123
]);

系统需求

Utopia 框架需要 PHP 8.0 或更高版本。我们建议在可能的情况下使用最新的 PHP 版本。

版权和许可

MIT 许可证 (MIT) http://www.opensource.org/licenses/mit-license.php