Ограничения

Используя очереди важно помнить, что задачи ставятся в очередь и извлекаются из нее в разных процессах. Поэтому, при обработке задания, избегайте использования внешних зависимостей, когда не уверены в том, что они будут доступны в том окружении, где работает воркер.

Все данные, необходимые для выполнения задания, нужно оформлять в виде свойств Вашего job-объекта, и отправлять в очередь вместе с ним.

Если в задании нужно работать с моделью ActiveRecord, вместо самой модели передавайте ее ID. А в момент выполнения извлекайте ее из базы данных.

Например:

Yii::$app->queue->push('channel', new SomeJob([
    'userId' => Yii::$app->user->id,
    'bookId' => $book->id,
    'someUrl' => Url::to(['controller/action']),
]));

Класс задания:

class SomeJob extends Object implements \zhuravljov\yii\queue\Job
{
    public $userId;
    public $bookId;
    public $someUrl;
    
    public function run()
    {
        $user = User::findOne($this->userId);
        $book = Book::findOne($this->bookId);
        //...
    }
}

И, наконец, это расширение Вам не подойдет, если Вы планируете обрабатывать очередь сторонними средствами. Например, когда воркеры работают на другом стеке технологий: golang, nodejs и прочее.