Аза
Всем привет! Был ли у кого опыт, и кто может подсказать, как дружить между собой messanger разных микросервисов?
Микросервисы на симфе. Переопределил сериализатор мессенджера, дабы и другие сервисы его понимали, но проблема не с этим.
Проблема в обработке джобов, а именно бросить джобу в одном микросервисе, а обработать в другом. Сейчас симфа не хочет видеть message без его хендлера, что не совсем подходит, так как обработчик(с таким же месседжем) должен быть в другом микросервисе, а месседж бросаться в первом
Сергей
Всем привет! Был ли у кого опыт, и кто может подсказать, как дружить между собой messanger разных микросервисов?
Микросервисы на симфе. Переопределил сериализатор мессенджера, дабы и другие сервисы его понимали, но проблема не с этим.
Проблема в обработке джобов, а именно бросить джобу в одном микросервисе, а обработать в другом. Сейчас симфа не хочет видеть message без его хендлера, что не совсем подходит, так как обработчик(с таким же месседжем) должен быть в другом микросервисе, а месседж бросаться в первом
никак. Просто закидывать в одном сервисе сообщение в очередь, в другом из нее читать. Использовать соответсвующие библиотеки
Аза
Аза
По итогу то это и пытаюсь сделать
Сергей
Какие?
подходящие для твоего брокера.)
Для ребита с симфой вроде oldsound раньше в основном использовали
Аза
Брокер — реббит. Спасибо, гляну
Dmitriy
ну в гугле много инфы
"symfony messenger consume external message"
Сергей
и мессенджер подойдет)
Сергей
Сергей
видимо в 5 симфе
Сергей
это было все время. не было никаких ограничений
Сергей
вот кстати одна из попыток это сделать универсально)
https://github.com/Happyr/message-serializer
Аза
Сергей
а по подробней?
Юра
Симфони сохраняет класс сообщения и информацию с энвелопов всяких
Юра
Ты где это хочешь прочитать? Если в другой симфони то по идее главное так же настроить мессенджер и принимать себе
Юра
Если в другом приложении то тут проблемы я так понимаю
Аза
Если в другом приложении то тут проблемы я так понимаю
Нет, проблема была, как и описывал выше в том, что в каждом микросервисе должен быть Message и MessageHandler. Это не совсем правильно, если я хочу в одном генерировать месседж, а во втором микросервисе его обработать. Вроде решается на уровне конфига
Юра
А если у тебя нет класса этого месаджа то как это выглядит в итоге?
Аза
Иначе симфа вообще отказывается видеть все message, которые без хендлеров
Юра
приходит stdClass или что?
Аза
Alexey Mishurovskiy
Всем привет!
Alexey Mishurovskiy
Как пнуть долбаный прокси-класс доктрины, чтобы он вынул данные из БД ?
$em->refresh не помогает.
Юра
Дернуть геттер? )
Сергей
кроме геттера id
Юра
А что за кейс такой, ниразу не встречал необходимости
Alexey Mishurovskiy
я дергаю связь $processes = $paymentTransaction->getProcesses();
в БД 2 записи результат геттера = 0
Alexey Mishurovskiy
Alexey Mishurovskiy
ожидаемый результат 2, а фактический 0
Юра
Отключи прокси в тестах
Alexey Mishurovskiy
Юра
По идее
auto_generate_proxy_classes
Юра
В конфиге
Юра
Хотя я не уверен что оно отключает механизм прокси
Юра
Возможно просто не генерит их автоматически
Сергей
тут кажется ошибка в чем то другом, а не в прокси
Юра
getProcesses()->count()
Юра
Будет ноль?
Евгений
Всем привет! Подскажите пожалуйста, как добавть группу и пользователя в докер контейнер при установке композера? После установке symfony в папке с приложением ничего не могу изменить - права ограничены. Спасибо.
Alexey Mishurovskiy
Юра
Ну перепиши тест
Alexey Mishurovskiy
хотя надо дополнительно проверить
Юра
Ну сделай каст к PersistentCollection и посмотри методы
Alexey Mishurovskiy
Юра
/**
* Initializes the collection by loading its contents from the database
* if the collection is not yet initialized.
*/
public function initialize(): void
{
Alexey Mishurovskiy
все, нашел ошибку. 🤦🏼♂️ все нормально работает
Alexey Mishurovskiy
Спасибо ))) иногда выговорится помогает найти
Юра
https://imgflip.com/i/6z7r50
Alexey Mishurovskiy
😂 да
Nikolay
Евгений
Nikolay
Евгений
Попытался установить symfony в папку app в корне проекта, выдает ошибку - mkdir(): Permission denied
Nikolay
Евгений
я права вообще не трогаю - я же и искал, как делается без изменения прав вручную
Евгений
я все окружение скачал
Евгений
но я не пойму в какую папку устанавливать симфони. все службы работают с корнем. при установке симфони указывается название проекта, которое является названием папки.
Nikolay
Евгений
чтобы работать с симфони, нужно либо изменять в службах путь, но только после установки симфони. потому что иначе задаются права
Евгений
но по моему это квест какой-то. я пытаюсь изучать докер для удобной работы.
Евгений
задаются не права, а ограничения
Nikolay
У меня на том конфиге, что выше, поднят проект на симфони. Сначала запустите контейнеры, потом установите скелетон или еще что (composer create-project ....) Потом просто проверить и поправить настройки, где это нужно
Евгений
Спасибо Николай, я понял.
Евгений
а нет другого решения?
Nikolay
А какое вы хотите еще?
Евгений
Окружения
Nikolay
Это минимальное окружение, которое нужно для работы. Чем оно не подходит?
Евгений
Спасибо, я переживаю, что в какой-то момент забуду этот ньюанс и буду голову ломать почему не работает))
Евгений
Простите, на самом деле спасибо огромное.
Nikolay
Евгений
👍
Евгений
Николай! Вы не знаете, как зайти в папку с симфони внутри контейнера?
Евгений
а cd ... куда писать?