smncd/retask

Kushal Das 编写的 retask 的 PHP 版本

dev-main 2024-02-01 21:50 UTC

This package is not auto-updated.

Last update: 2024-09-26 23:51:22 UTC


README

这是由 Kushal Das 编写的retask python 模块的 PHP 版本。

retask 是一个轻量级的库,用于使用 Redis 创建分布式任务队列。

它基本上是 Redis 现有功能的一个包装,旨在与原始的 retask Python 模块兼容。

⚠️ 前方有龙⚠️

目前这个仓库是一个概念验证,可能会发生很多变化,所以请自行承担风险,祝您玩得开心!

安装

该包可以通过 composer 获取,但是您需要将项目最小稳定性设置为 dev

// composer.json
{
  ...
  "minimum-stability": "dev",
  ...
}

然后,您可以像平常一样安装该包

composer require smncd/retask

示例

// provider.php
<?php
declare(strict_types=1);

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

use Smncd\Retask\Queue;
use Smncd\Retask\Task;


$queue = new Queue('example');

$queue->connect();

$task = new Task([
    'user' => 'John Doe',
    'task' => 'High-five a sea otter.',
]);

$queue->enqueue($task);
// worker.php
<?php
declare(strict_types=1);

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

use Smncd\Retask\Queue;


$queue = new Queue('example');

$queue->connect();

while (true) {
    $task = $queue->dequeue();

    if ($task) {
        $data = $task->data();

        print_r($task->data());
    }
}