Size: a a a

2020 July 21

А

Алексей R in Yii Framework 3
а ты можешь через Injector запускать выполнение работы?
источник

А

Алексей R in Yii Framework 3
а в сигнатуре execute() запрашивать нужные сервисы
источник

DS

Dmitriy S in Yii Framework 3
Алексей R
а ты можешь через Injector запускать выполнение работы?
Только это хотел написать. Надо возможность инжектить в выполнение для таких случаев
источник

AB

Alexander Borisov in Yii Framework 3
А почему Job не сделать сервисом? А source уже передавать в качестве аргумента?
источник

DS

Dmitriy S in Yii Framework 3
Вот здесь через инжектор если выполнять, то можно отложенный инжект зависимостей сделать
https://github.com/yiisoft/yii-queue/blob/master/src/Worker/Worker.php#L42
источник

А

Алексей R in Yii Framework 3
или нормализовать дефенишены для джобов. Например, ['class' : 'myJob', 'param': $myDto], а "десериализация" протечёт через конструктор класса
источник

В

Виктор in Yii Framework 3
Alexander Borisov
А почему Job не сделать сервисом? А source уже передавать в качестве аргумента?
source как раз и должен попасть в очередь
источник

В

Виктор in Yii Framework 3
Алексей R
или нормализовать дефенишены для джобов. Например, ['class' : 'myJob', 'param': $myDto], а "десериализация" протечёт через конструктор класса
не уверен, что понял
источник

В

Виктор in Yii Framework 3
Dmitriy S
Вот здесь через инжектор если выполнять, то можно отложенный инжект зависимостей сделать
https://github.com/yiisoft/yii-queue/blob/master/src/Worker/Worker.php#L42
Отличная мысль. Осталось понять, как быть с интерфейсом...
источник

DS

Dmitriy S in Yii Framework 3
Виктор
Отличная мысль. Осталось понять, как быть с интерфейсом...
С интерфейсом чего?
источник

В

Виктор in Yii Framework 3
Dmitriy S
С интерфейсом чего?
interface JobInterface
{
   public function execute();
}
источник

AM

Alexander Makarov in Yii Framework 3
@pr_of_it вот реализации у нас есть на тему OpenAPI:

1. https://github.com/cebe/php-openapi - общий пакет
2. https://github.com/cebe/yii2-openapi - Yii 2
источник

DS

Dmitriy S in Yii Framework 3
Виктор
interface JobInterface
{
   public function execute();
}
Так там только первый параметр нужен, не?
источник

AB

Alexander Borisov in Yii Framework 3
Виктор
source как раз и должен попасть в очередь
неверно, видимо, сформулировал. чем подход symfony/messenger плох? хендлер отдельно, сообщение отдельно
источник

В

Виктор in Yii Framework 3
Dmitriy S
Так там только первый параметр нужен, не?
Этому job'у - да
источник

В

Виктор in Yii Framework 3
Кто знает, кому что для чего понадобится
источник

DS

Dmitriy S in Yii Framework 3
Виктор
Этому job'у - да
Я не о том, там вообще параметров нет, то в примере в пакете ошибка. Я о том, что добавление параметров в метод интерфейса не нарушает интерфейс, хотя и делает легкую несовместимость, но поскольку интерфейс внутренний, то все ок.
источник

В

Виктор in Yii Framework 3
Интерфейс внешний как раз
источник

DS

Dmitriy S in Yii Framework 3
Виктор
Интерфейс внешний как раз
Я имел в виду, что он не пср
источник

А

Алексей R in Yii Framework 3
Виктор
не уверен, что понял
всё, что тебе надо передавать это класс и параметры, которые не тащат за собой сервисы. В обработчике создашь джоб, заинжектишь параметры, а сервисы подтянутся из контейнера. И интерфейс нарушен не будет
источник