PHPackages                             alex-salt/yii2-tasks - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Queues &amp; Workers](/categories/queues)
4. /
5. alex-salt/yii2-tasks

ActiveLibrary[Queues &amp; Workers](/categories/queues)

alex-salt/yii2-tasks
====================

Yii2 background task component

v1.0.1(9y ago)01.0k[1 issues](https://github.com/holycheater/yii2-tasks/issues)MITPHPPHP ^5.6 || ~7.0

Since Apr 10Pushed 9y agoCompare

[ Source](https://github.com/holycheater/yii2-tasks)[ Packagist](https://packagist.org/packages/alex-salt/yii2-tasks)[ Docs](https://github.com/holycheater/yii2-tasks)[ RSS](/packages/alex-salt-yii2-tasks/feed)WikiDiscussions master Synced 2mo ago

READMEChangelogDependencies (6)Versions (3)Used By (0)

yii2-tasks
==========

[](#yii2-tasks)

Component for running background tasks inside a `react/event-loop`.

Install
-------

[](#install)

```
composer require alex-salt/yii2-amqp
```

Usage
-----

[](#usage)

### Configure application:

[](#configure-application)

```
return [
    'components' => [
        'rmq' => [
            'class' => \alexsalt\amqp\Connection::class,
            'host' => 'localhost',
        ],
        'tasks' => [
            'class' => \alexsalt\tasks\TaskQueueComponent::class,
            'rmq' => 'rmq',
            'defaultQueue' => 'tasks',
        ],
    ],
];
```

### Create a task

[](#create-a-task)

```
use alexsalt\tasks\TaskInterface;

class MyTask implements TaskInterface {
    public $a;

    public $b = 1;

    public function run() {
        // your magic code
    }
}
```

### Send a task:

[](#send-a-task)

```
$task = new MyTask([ 'a' => 1, 'b' => 5 ]);
Yii::$app->tasks->send($task);
```

### A task worker:

[](#a-task-worker)

```
use alexsalt\tasks\TaskWorker;

class WorkerController extends \yii\console\Controller {
    public function actionMyTask() {
        $worker = new TaskWorker([
            'queue' => 'tasks',
        ]);
        $worker->start();
    }
}
```

### Custom worker

[](#custom-worker)

```
use alexsalt\tasks\BaseMessage;
use alexsalt\tasks\AbstractWorker;

// declare message class with structure
class MyMessage extends BaseMessage {
    public $a;

    public $b;
}

// declare worker with our handler
class MyWorker extends AbstractWorker {
    /**
     * @param MyMessage $msg
     */
    public function processMessage(BaseMessage $msg) {
        if ($msg->a - $msg->b) {
            return $this->ack($msg);
        } else if (!$msg->b) {
            Yii::error('dont like the message');
            return $this->drop($msg);
        } else {
            return $this->nack($msg);
        }
    }
}

// create and send message
$msg = new MyMessage([ 'a' => 1 ]);
Yii::$app->rmq->sendToQueue($msg, 'my-queue');

// start worker that does stuff
$worker = new MyWorker([ 'queue' => 'my-queue' ]);
$worker->start();
```

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity14

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~30 days

Total

2

Last Release

3288d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/d0d4697f7993e6518f1e60d95e1ad8759037288ea8f20b20f44435c591ebc9a6?d=identicon)[alex\_salt](/maintainers/alex_salt)

---

Tags

event-looprabbitmqyii2AMQPreactTasks

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/alex-salt-yii2-tasks/health.svg)

```
[![Health](https://phpackages.com/badges/alex-salt-yii2-tasks/health.svg)](https://phpackages.com/packages/alex-salt-yii2-tasks)
```

###  Alternatives

[bunny/bunny

Performant pure-PHP AMQP (RabbitMQ) non-blocking ReactPHP library

7426.5M37](/packages/bunny-bunny)[bschmitt/laravel-amqp

AMQP wrapper for Laravel and Lumen to publish and consume messages

2752.3M7](/packages/bschmitt-laravel-amqp)[mikemadisonweb/yii2-rabbitmq

Wrapper based on php-amqplib to incorporate messaging in your Yii2 application via RabbitMQ. Inspired by RabbitMqBundle for Symfony 2, really awesome package.

74262.1k1](/packages/mikemadisonweb-yii2-rabbitmq)[bazilio/yii2-async

Provides translucent api for moving large tasks out of request context

6248.8k2](/packages/bazilio-yii2-async)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
