Andrey
Мэйби мэйби
Anonymous
воркеры будут на чистом php без фреймворков?
invariance
это не имеет особой разницы
invariance
с фреймворком \ без
invariance
газл точно есть
Evgeny
вообще прикольно, если я правильно понял, то главное приложение плодит задачи а воркеры их разбирают и крутят
Andrey
не вроде
Andrey
Воркеры парсят какие то данные и складывают в приложение. я так понял?
invariance
не обязательно главное приложение раздает задачи
Andrey
парсят == берут где то. не важно
invariance
задачи могут запускаться демоном
Andrey
ну это подразумеватся
Evgeny
на одно машине все это?
Evgeny
т.е. главное приложение знает всех воркеров?
invariance
но на самом деле это только в одном воркере. В других будет и логика кроме прочего
Andrey
тебе обязательно чтобы все воркеры стартовали одновременно строго? или типа по 4 штуки. отработали - следующие?
Andrey
ну блин, тебе идеально подошло бы, что я писал. но ты упорно хочешь вынести их из приложения
invariance
ох
Andrey
Я правда так и не понял, зачем(
Andrey
Ну да, я туповат
invariance
я повторю в 4 уже раз
invariance
:D
invariance
читай внимательно
invariance
что бы не масштабировать целиковый монолит
Andrey
Да не стоит наверное. Я и до этого читал
invariance
я выношу ресурсозатратную логику в сервисы
Andrey
что бы не масштабировать целиковый монолит
Для мня эта фраза уже непонятно, что ты там ввиду имешь
invariance
что бы при необходимости масштабировать мелкие сервисы, а не громадный монолит с апи и всем прочим
Evgeny
а если сделать так что воркеры сами ходят за задачами? Отработал->отдал результат главному
Andrey
Нам пересмотреть?
Evgeny
а глваное предоставляет доступ к стеку с задачами
Evgeny
тогда ты плодиш сколько хочеш воркеров
invariance
верно
Andrey
даже "можно". спасибо за разрешение
Andrey
Я тогда тож последний разок опишу) : 1. Делаем Job'ы в приложении - это наши воркеры. каждый со своей логикой. делаем сколько надо 2. Делаем или консольную команду по их запуску или сразу в console/Kernel - пуляем их в очередь 3. Supervisor запускает их в столько потоков, сколько ты настроишь (привет, масштабирование) 4. Профит
Andrey
Хотя даже логику в Job пихать может и не надо. В Job просто берет нужный сервис/воркер и запускает на обработку. Ну это уже детали реализации
Andrey
Как говорил, у меня есть пример, когда две сотни разных задач пулятся в очередь. А supervisor их оттуда берет и выполняет. Хочешь 1 поток, хочешь 4, хочешь сколько надо - как настроишь
invariance
не понимаю, как это должно выглядеть
invariance
если честно =
invariance
\
Andrey
Могу набросать пример, если надо
invariance
хотя вроде понял
Andrey
Да ты спрашивай, что не понятно
Anonymous
Если это всё будет на одной машине, то смысла в воркерах вообще нет
invariance
проще наверное будет своего демона написать
Evgeny
а можно вкрай упороться и сделать так. Описываем протокол общения между воркерами и приложением. Main app плодит задачи прикидывает сколко ей нужно на это воркеров. По api поднимает vps инстансы с воркерами с поминутной оплатой. Воркеры делают свое дело, отают результат главному и дохнут. Профит в том, что не забиваются мощности сервера с главным приложением
invariance
Если это всё будет на одной машине, то смысла в воркерах вообще нет
я уже видел проекты, которые планировались для одной машины, а потом в итоге их масштабировали тупо копипастой на другие)
Andrey
Если это всё будет на одной машине, то смысла в воркерах вообще нет
у меня они "тяжелые" по времени. тут без вариантов было
invariance
а как у тебя супервизор слушает очередь?
Andrey
я уже видел проекты, которые планировались для одной машины, а потом в итоге их масштабировали тупо копипастой на другие)
Если реально думаешь, что это у тебя будет - то может быть. Иначе очень похоже на преждевременную оптимизацию
Anonymous
у меня они "тяжелые" по времени. тут без вариантов было
В отдельных потоках запускать, php может с pthreads работать
Andrey
а как у тебя супервизор слушает очередь?
в офф доке даже примеры есть)
invariance
ты в смысле обычный стандартный супервизор юзал?
invariance
supervisord?
Andrey
В отдельных потоках запускать, php может с pthreads работать
но зачем? если в ларе есть все удобно для такого запуска?
Andrey
и юзаю активно
Andrey
?
invariance
ой
invariance
:D
invariance
https://laravel.com/docs/5.1/queues#supervisor-configuration
invariance
а если упадет супервизор - кто поднимет его? 😂
Anonymous
треды != воркеры.
Ну тред легче чем процесс
Andrey
а чего ему падать?
invariance
Dmitriy
Ну тред легче чем процесс
Они нужны для разных задач
invariance
насколько я знаю, потоки намного сложнее устроены
Andrey
парни, вы не там оптимизируете опять)
invariance
из-за этого всякие thread-safety и т.д. термины появились
invariance
Андрэ спасибо за способ, его наверное и заюзаю
Andrey
Фолли, он рабочий и удобный и логичный