承接 kozhemin/yii2-background-task-queue 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

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

kozhemin/yii2-background-task-queue

最新稳定版本:1.0.0

Composer 安装命令:

composer require kozhemin/yii2-background-task-queue

包简介

Yii2 background task queue Extension is a simple and easy-to-use extension for running background tasks in Yii2 applications

README 文档

README

Yii2 background task queue Extension is a simple and easy-to-use extension for running background tasks in Yii2 applications.

Installation

The preferred way to install this extension is through composer.

composer require kozhemin/yii2-background-task-queue

migration

php yii migrate --migrationPath=@vendor/kozhemin/yii2-background-task-queue/migrations

Basic Usage

use kozhemin\backgroundTaskQueue\TaskPublisher;

$task = new MySimpleTask();
$taskPublisher = new TaskPublisher($task);
$queue = $taskPublisher
    ->setDescription('My simple task')
    ->setDelay(60)
    ->publish();

    if ($queue->hasErrors()) {
        echo "\nTask not created. Errors: " . implode(', ', $queue->getFirstErrors()) . "\n";
        return ExitCode::UNSPECIFIED_ERROR;
    }

    echo "\nTask created with id: " . $queue->uuid . "\n";

Task class example

use kozhemin\backgroundTaskQueue\contracts\HandlerInterface;
use kozhemin\backgroundTaskQueue\contracts\TaskResponseInterface;
use kozhemin\backgroundTaskQueue\TaskResponse;

class MySimpleTask implements HandlerInterface
{
    public function run(): TaskResponseInterface
    {
        // some code here
        echo "Start task\n";
        sleep(3);
        echo "End task\n";

        $response = new TaskResponse();
        $response->setMessage(['firstResponseMsg' => 'Hello from task1!']);
        $response->appendMessage(['secondResponseMsg' => 'Hello from task2!']);

        return $response;
    }
}

all commands

- task-queue                   Controller for managing background tasks.
    task-queue/run             Runs the task.
    task-queue/ls              Displays a list of tasks.
    task-queue/info            Displays information about the task.
    task-queue/cancel          Cancels the task.
    task-queue/retry           Retries the task.
    

run task

# run task
php yii task-queue/run

# or with uuid
php yii task-queue/run <uuid>

example crontab

# run task every minute
* * * * * php yii task-queue/run

# run task every 30 seconds
* * * * * php yii task-queue/run
* * * * * sleep 30 && php yii task-queue/run

# run every 10 seconds
* * * * * php yii task-queue/run
* * * * * sleep 10 && php yii task-queue/run
* * * * * sleep 20 && php yii task-queue/run
* * * * * sleep 30 && php yii task-queue/run
* * * * * sleep 40 && php yii task-queue/run
* * * * * sleep 50 && php yii task-queue/run

listen task

php yii task-queue/ls

# or with status filter
php yii task-queue/ls --limit=10 --status=0,1,2,3

# run help command for more options 
php yii help task-queue/ls

example listen task real time

# run listen task real time
watch -n 1 php yii task-queue/ls

Screenshots

# task list
php yii task-queue/ls --status=0,1,2,3

Screenshot

# task info
php yii task-queue/info 67895e8b58fbb

Screenshot

统计信息

  • 总下载量: 1
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-01-16