Laravel передача информации между сервисами через очередь

136
08 марта 2019, 06:30

Вопрос такой, есть два микро-сервиса, один создает транзакцию и кидает в очередь (rabbitmq) второй сервис должен ее подхватить и обработать. Столкнулись с проблемой, что что бы передать объект через очередь, он должен быть именно инстансом jobs и что бы отработать в обработчике, должен быть полностью дублирован на двух сервисах. нельзя например просто положить json и получить его в обработчике. Вернее положить то можно, но вот как взять? Не покидает чувство, что я что то не так делаю, не верный подход к передаче информации что ли... Подскажите плиз, куда копать? Laravel 5.6

Answer 1

Ваш идеал - для каждого микросервиса свой класс джоб с общими свойствами. При этом на сервисе который ложит в очередь - методы которые отвечают за формирование сообщения в очереди. А на приемнике соотвественно методы которые отвечают за парсинг jsonа из очереди и выполнение.

Я так понял что Вас смущает дублированние классов, это обьясняется тем что разработчики laravel предполагали что ложить джобы и выполнять будет один и тот же инстанс laravel.

Что бы понять что не так, или как сделать лучше расскажите какая именно задача ложиться в очередь, т.е. какую задачу решает эта задача в очереди. Я попробую подумать как сделать это в более laravel стиле

READ ALSO
Как скрыть часть url?

Как скрыть часть url?

Как можно преобразовать такой url http://sitenameru/katalog/nazvaniekategorii/ в такой: http://sitename

183
Carbon laravel получить день

Carbon laravel получить день

есть дата $request->datestart = '2018-10-02'

161
Как создать в приложении ссылку для просмотра документа на Google Drive?

Как создать в приложении ссылку для просмотра документа на Google Drive?

Возможно ли, и как создать ссылку для просмотра документа, который лежит на гугл диске, для показа на сайте? Использую Google API для взаимодействия...

159
Запись в базу Elasticsearch через PHP (Symfony)

Запись в базу Elasticsearch через PHP (Symfony)

Мне нужно записывать в базу такие поля как id, accessToken, refreshTokenПодскажите пожалуйста как можно это сделать средствами Symfony

167