несколько очередей. У меня эти очереди динамические и я их загружаю в HorizonServiceProvider. Но для добавления новой очереди в Horizon мне нужно перезапускать с ним контейнер. Это не удобно. Как мне добавить новую очередь в Horizon не перезапуская контейнер или чтобы он перезапускался автоматически? Может у кого то был похожий кейс?
Доброе утро! artisan horizon:terminate разве очень неудобно?
Если бэкенд и горизонт находятся в разных контейнерах, эта команда не работает.
выгрузку на backend вы же как-то делает? потому же принципу и зайдите в docker контейнер с horizon и вызовете там соответствующую команду
только мен не понятно, зачем так усложнять жизнь, у вас, наверное, и schedule в отдельном контейнере
Ну в ручном режиме я конечно могу перезапустить контейнер. Тут вопрос в том, что у меня название очередей составляется из записей в таблице. И если появляется новая запись, должна появиться новая очередь. Для этого надо перезапускать процесс горизонта. Из контейнера бэкенд это не сделаешь. Я уже думал про какой то внешний вотчер, который не в докере и прослушивает таблицу в БД, если количество записей изменилось, то он перезапускает контейнер с горизонтом. Но мне кажется, что это какой то костыль.
Я не знаю что у тебя за задача, но составление имён очередей на основе записи в базе, это уже какой то костыль. Почему было так сделано, почему нельзя всех в одну очередь отправить.
получается одни и те же события могут лететь в разные очереди? архитектура немного не ясна
есть список компаний, у каждой компании несколько процессов. эти процессы должны выполняться параллельно. была одна очередь, но процессы в ней выполнялись последовательно. поэтому было решено разделить процессы по компаниям. соответственно при добавлении новой компании должны создаваться для нее очереди.
есть ряд процессов, но он разделяется еще и по компаниям.
я бы количество воркеров (обработчиков) на очередь добавил. А не плодил зоопарк.
они тогда все равно будут месить одну очередь, которую может одна компания забить и вторая будет ожидать, пока с первой разберутся
не вариант, мы не можем угадать, сколько нужно воркеров. количество компаний динамичное.
значит что не так настроили в очередях, что у вас все шло последовательно, точнее был запущен один woker на всю очередь
это понятно что вы не можете угадать, но и мощности сервера не резиновые, в какой-то момент у тебя просто тупо не хватит ресурсов держать много очередей, не то что обрабатывать в них job-ы
Обсуждают сегодня