запросов с 4 форками. Дальше появилась задача продублировать один ендпроинт, скажем POST /test на другой сервер, с лимитом, 50 запросов в минуту.
Для реализации использовались сообщения между главным потоком и детьми. В каждого процесса есть обьект { куда слать запрос, сколько отправили в текущую минуту, лимит сообщений }, когда процесс продублировал запрос на другой сервер, то он отправляет мастеру сообщение для увеличения счетчика отправленных запросов, мастер же отправляет сообщения всем подпроцессам, чтобы они увеличили счетчик.
Это все работает, но на больших количествах запросов, 50/с, из-за задержки изменения каунтера в процессах, дублируется чуть больше лимита, при тесте 80 параллельных запросов, продублировалось 55 запросов с 50.
Можно ли как-то оптимизировать данных случай, чтобы не выходило за рамки лимита?
Ну тут надо подробнее расписать конечно, или схемку, я смысл понял но систему пока плохо представляю. В принципе готов подсказать
Обсуждают сегодня