Есть примерно такой код (упрощен).
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]);