Почему в yii2 очередях отрабатывают только триггеры: Queue::EVENT_BEFORE_PUSH и Queue::EVENT_AFTER_PUSH?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
EVOSandru6
Сообщения: 605
Зарегистрирован: 2014.07.04, 13:33

Почему в yii2 очередях отрабатывают только триггеры: Queue::EVENT_BEFORE_PUSH и Queue::EVENT_AFTER_PUSH?

Сообщение EVOSandru6 »

Добрый день,

Сконфигурировал поддержку очердей как в документации:

https://github.com/yiisoft/yii2-queue

Сами очереди отрабатывают нормально. В качестве драйвера указал 'db' и создал mysql таблицу как в доке

Далее в основах:

https://github.com/yiisoft/yii2-queue/b ... 0%B8%D0%B9
Пытаюсь слушать события. Мне Интереснее всего следить за:

Queue::EVENT_AFTER_EXEC
ExecEvent
После каждого успешного выполнения задания


Но не могу в него попасть хотя очередь отабатывает успешно.

./yii queue/listen --color --verbose --isolate
----------------------
2018-10-09 14:43:10 [156] common\jobs\DownloadJob (attempt: 1, pid: 4297) - Started
2018-10-09 14:43:11 [156] common\jobs\DownloadJob (attempt: 1, pid: 4297) - Done (0.379 s)

Ловлю:

EVENT_BEFORE_PUSH
EVENT_AFTER_PUSH


Не ловлю:

EVENT_BEFORE_EXEC
EVENT_AFTER_EXEC
EVENT_AFTER_ERROR
EVENT_WORKER_START
EVENT_WORKER_LOOP
EVENT_WORKER_STOP


Пример отлова:

Код: Выделить всё

$afterExecAlert = function($event) {
            throw new \Exception('Hurra - EVENT_AFTER_EXEC');
        };
Yii::$app->queue->on(Queue::EVENT_AFTER_EXEC, $afterExecAlert);

Yii::$app->queue->push(new DownloadJob([
            'url' => 'https://picsum.photos/200/500',
            'file' => $full_path,
        ]));

Config:

Код: Выделить всё

'queue' => [
            'class' => \yii\queue\db\Queue::class,
            'db' => 'db', // DB connection component or its config
            'tableName' => '{{%queue}}', // Table name
            'channel' => 'default', // Queue channel key
            'mutex' => \yii\mutex\MysqlMutex::class, // Mutex used to sync queries
            'as log' => \yii\queue\LogBehavior::class
        ],

Подскажите пожалуйста в чем причина?
Ответить