invariance
возможно что оверхед
invariance
у меня походу msa
invariance
похоже что через апи (хттп) буду передавать данные
invariance
на пхп это самый дешевый вариант
Dmitriy
редис самый дешевый вариает с pub/sub
invariance
надо подумать короче
invariance
потому что пхп
Andrey
Фолли
Andrey
Вот например, у меня есть сервис, который плодит задачи парсинга. Может пару сотен в очередить кинуть одновременно, и они запускаются потиху, отрабатывают и умирают. Все в одном приложении
Dmitriy
есть же понятие "MonolithFirst"
invariance
у меня вроде появилась идея как реализовать
invariance
в общем какой-нибудь демон левый раз в N минут будет запускать команду в основной приложухе. Команда инициирует цикл для прослушки очереди (shared memory), и в то же время запускает воркер. Воркер дергает апи, получает и преобразует данные, пихает в shared memory (откуда и получает их основная приложуха). Данные получены, цикл закрывается.
invariance
забыл упомянуть, все это действо будет раз в N времени выполняться, т.е. постоянно слушать очередь нет необходимости
Andrey
хм. если у тебя из приложения запускается Job из очереди, зачем ему шаредмемори? он имет доступ к ядру приложения и может сам сохранить данные
invariance
нет, очереди вообще не будут отношения иметь к ларавеловским
invariance
это скорее из области AMQP
Andrey
А воркеры эти с какой периодичностью будут запускаться? Много их ?
invariance
тут тонкий момент. Воркеры будут разные задачи выполнять и по разному работать
invariance
но тот который я сейчас пишу - один
invariance
с переодичностью раз в пол часа где то
invariance
есть еще вариант прямо из воркера в бд писать...
Andrey
Воркеры эти - они ж на php тоже?
invariance
да
Andrey
Смотри
Andrey
1. Делаешь Job в котором код твоего воркера этого
2. В console/Kernel.php шедулере его раз в полчаса пулишь в очередь на выполнение
3. Где-то там у тебя supervisor запускает все, что в очередь попало
Andrey
Воркер отрабоатл, сохранил данные (у него есть доступ к ядру) и все ок
invariance
ты предлагаешь целиком воркер в очереди передавать? :D
invariance
звучит не очень
Andrey
Что значит целиком?
invariance
ну код воркера
invariance
это и есть воркер
Andrey
Код воркера у тебя описан в Job
invariance
бля, не понятно
Andrey
ну который artisan make:job
invariance
ну и получится что воркер внутри монолита
invariance
чего я хочу избежать
invariance
не?
Andrey
А почему?
Andrey
Если он его часть, он для него данные берет и в него сохраняет
invariance
но он может дофига данных обрабатывать, поэтому я хочу отмасштабировать его в отдельную апликаху
invariance
не то что бы слишком дофига, но таких воркеров будет много в скором будущем и я хочу научиться уже сейчас делать их отдельно от монолита
Andrey
Ну они работать то будут в своем потоке, все норм
Andrey
Не, ну тебе виднее. Но зачем делать отдельно, мне тут не очент понтяно
invariance
я ж говорю
Evgeny
т.е. одно приложение ставит задачи, другое выполняет?
Andrey
Они где-то берут данные, и им надо данные в приложение сохранить. И ты пытаешься решить проблему, которую сам создал получается
invariance
блэт да я сделаю долбаные микросервисы прям, прям МСА
invariance
буду сейвить в бд прям из воркеров
invariance
и все, никаких проблем
Andrey
сейви. я б не стал
invariance
изи
invariance
я бы тоже не стал
invariance
если бы писал не на пхп
Andrey
Ну в смысле - не стал их выносить скорее всего. по описанию похоже, что это часть приложения
invariance
понимаешь в чем суть
invariance
если я ща не разнесу по сервисам
invariance
у меня начнет получаться энтерпрайз какой-то
invariance
а на ларавел это такое себе
invariance
плюс я эти сервисы смогу масштабировать только вместе со всей приложухой
Andrey
Ну кароч, мне кажется ты загоняешься, сам не зная чем и зачем) Но это конечно твое дело)
invariance
я знаю зачем
Andrey
так они часть приложения же)) не?
invariance
они часть сервисной архитектуры
invariance
они работают отдельно друг от друга, но могут общаться
invariance
это не то же самое что монолит
Andrey
Воркеры между собой??
invariance
с приложением основным
invariance
и при желании между собой
Andrey
херасе
invariance
а что такого?
Andrey
крутая архитектура. даже не могу сходу придумать., зачем такое надо
invariance
Так я же тебе говорю (в 3 раз) - для масштабирования
Evgeny
двусторонне общение или только сообщения от главного воркерам?
invariance
я могу сто воркеров поднять, не поднимая громоздкий монолит
Andrey
Мне кажется, Фолли,. ты не очень понимаешь что говоришь
invariance
invariance
invariance
поэтому говоришь, что я не понимаю