/
v.bolshakov
/
AIEcosystem-Testing
Обзор
Документация
Войти
/
v.bolshakov
/
AIEcosystem-Testing
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
dev
common/components/Queue.php
68 строк
2 KB
Developer
Initial commit
03 авг 2026, 17:43
03 авг 2026, 17:43
7433917
Код
Авторство
О чём код?
<?php namespace common\components; use common\jobs\base\BaseJob; use Yii; use common\models\Queue as DbQueue; use yii\base\Exception; use yii\helpers\VarDumper; /** * Db Queue * * @author Dmitry E. Semenov <sde.tomsk@gmail.com> * @copyright Self (c) 2020 */ class Queue extends \yii\queue\db\Queue { /** * @inheritdoc */ protected function pushMessage($message, $ttr, $delay, $priority) { $this->db->createCommand() ->insert($this->tableName, [ 'channel' => $this->channel, 'job' => $message, 'pushed_at' => time(), 'ttr' => $ttr, 'delay' => $delay, 'priority' => $priority ?: 1024, 'user_id' => Yii::$app->user->id ])->execute(); $tableSchema = $this->db->getTableSchema($this->tableName); return $this->db->getLastInsertID($tableSchema->sequenceName); } /** * @param BaseJob|mixed $job * @return string|null * @throws Exception * @inheritdoc */ public function push($job) { if ($job instanceof BaseJob) { $job->key = Yii::$app->getSecurity()->generateRandomString(); $job->user_id = Yii::$app->user->id; $queue_id = parent::push($job); Yii::debug(VarDumper::dumpAsString([ 'queue_id' => $queue_id, ])); // if ($job instanceof BaseSyncJob) { // DbQueue::updateAll(['object_id' => $job->object_id], ['id' => $queue_id]); // } return $queue_id; } else { return parent::push($job); } } }