Я пытаюсь найти способ ограничения скорости отдельных тем.Вызов одного и того же сценария несколько раз, постановка в очередь или регулирование последующих выполнений в пределах определенных параметров.
Я обнаружил множество решений для многопроцессорной обработки и многопоточности, но они применимы к одному выполнению сценария.Я не уверен, как справиться с этим для отдельных исполнений одного и того же сценария . .
Моя цель - ограничить число выполнений потоков до двадцати (20) в секунду.Ожидайте или ставьте в очередь последующие выполнения и продолжайте обработку на основе FIFO.
Ради тестирования давайте установим ограничения на три (3) в минуту.Не уверен, с чего начать, просто показывая rate_limit()
в качестве заполнителя.
import time
rate = 60
limit = 3
ts = time.time()
def single_task():
print ts
rate_limit(single_task())
Результаты нескольких выполнений должны выглядеть следующим образом:
session_1$ ./script.py
1527483557.76
session_2$ ./script.py
1527483558.26
session_3$ ./script.py
1527483559.03
session_4$ ./script.py
hang on a minute...
1527483560.57
session_5$ ./script.py
hang on a minute...
1527483561.92