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
Installs: 1
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:yii2-extension
Requires
- yiisoft/yii2: ~2.0.0
This package is auto-updated.
Last update: 2025-06-16 22:10:46 UTC
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
# task info
php yii task-queue/info 67895e8b58fbb