LINUX.ORG.RU

История изменений

Исправление WitcherGeralt, (текущая версия) :

При несколькх воркерах, конечно, локально уже считать не получится. Разве что при условии round-robin и только примерно, делая ctx.counter += num_workers, а потом выравнивать гетом при кратности 100, например. А для значения семафора можно взять что-то наподобие requests_limit_per_second / (1000 / average_request_duration_ms) / num_workers. Если инстансу количество воркеров вообще будет известно. Если нет, то нужен балансировщик. Nginx, вроде, умеет ограничивать rps.

А ещё нужно как-то занулять суточный счётчик.

Так-то задачка сложнее чем кажется. Может быть кто-то из лоровцев подскажет более элегантное, а то и готовое решение.

Исходная версия WitcherGeralt, :

При несколькх воркерах, конечно, локально уже считать не получится. Разве что при условии round-robin и только примерно, делая ctx.counter += num_workers, а потом выравнивать гетом при кратности 100, например. А для значения семафора можно взять что-то наподобие request_limit_per_second / (1000 / average_request_duration_ms) / num_workers. Если инстансу количество воркеров вообще будет известно. Если нет, то нужен балансировщик. Nginx, вроде, умеет ограничивать rps.

А ещё нужно как-то занулять суточный счётчик.

Так-то задачка сложнее чем кажется. Может быть кто-то из лоровцев подскажет более элегантное, а то и готовое решение.