@ocupay

Yii2-queue не публикует в канал redis, почему?

Есть примерно такой код (упрощен).
Entity наследует редис/эктиврекорд
stage переписывается (SET выполняется, проверял в redis-cli), а PUBLISH не срабатывает.
По пользовательским событиям broadcast() нормально работает, а вот в очереди не хочет.
Любые идеи?
class StatusJob extends BaseObject implements \yii\queue\JobInterface
{
    public $id;
    public $timer;

    public function execute($queue)
    {
        if ($this->timer - time() < 0) {
            $entity= Entity::find()->where(['id' => $this->id])->one();
            if ($entity->stage == 1) {
                $entity->stage = 2;
                $entity->update();
                $data = [
                    'id' => (int) $entity->id,
                    'timer' => $entity->timer - time(),
                    'stage' => (int) $entity->stage,
                ];

                (new SendToChannel(['data' => $data]))
                    ->setEvent('update')
                    ->toOthers()
                    ->broadcast();
            }

        }
    }
}


Так тоже не публикует
Yii::$app->redis->executeCommand('PUBLISH', ["event" => "update", 'data' => $data]);
  • Вопрос задан
  • 527 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы