Экспоненциальное отключение: time.sleep с random.randint (0, 1000) / 1000

Во многих образцах кода google api я видел эту строку кода.

time.sleep((2 ** n) + (random.randint(0, 1000) / 1000)) 

random.randint(0, 1000) / 1000 всегда возвращают случайные миллисекунды.

Каково использование этих случайных миллисекунд?

2 Solutions collect form web for “Экспоненциальное отключение: time.sleep с random.randint (0, 1000) / 1000”

Причина объясняется документацией API :

В приведенном выше потоке random_number_milliseconds представляет собой случайное число миллисекунд, меньшее или равное 1000. Это необходимо, чтобы избежать некоторых ошибок блокировки в некоторых параллельных реализациях. Значение random_number_milliseconds должно быть переопределено после каждого ожидания.

Это распространенный метод «путать» время доступа API, чтобы избежать перекоса, вызванного падением в повторяющиеся шаблоны сбора и освобождения блокировки ресурсов.

Имея немного случайности в таких ситуациях, это хорошо. Например, если у вас есть большое количество клиентов, поражающих один и тот же сервер, использование их с использованием одного и того же детерминированного отказа может привести к тому, что они поражают сервер в совершенном блокировке, что нежелательно.

  • Команды выхода Python - почему так много и когда каждый должен использоваться?
  • суммирование значений столбцов из нескольких файлов
  • с помощью SDK Google App Engine в pycharm
  • Неполные ответы на запросы BigQuery Google по нечетным попыткам
  • Импортировать все классы в каталог?
  • Невозможно запустить пользовательскую управляемую виртуальную машину Google App Engine: - должна быть задана ошибка в пользовательской точке
  • интерактивная отладка оболочки с помощью pycharm
  • Приложение для аутентификации Facebook для настольных компьютеров (на основе консоли)
  •  
    Interesting Posts for Van-Lav

    векторизовать значение процентиля столбца B столбца A (для групп)

    скользящее окно в numpy

    максимальная глубина рекурсии

    Удаление неиспользуемых пакетов из файла требований

    Новое для Python … Python 3 и Matplotlib

    Продолжайте, пока не будут выполнены все итераторы Python

    Масштабирование цели приводит к тому, что Scikit-learn регрессия SVM разбивается

    как установить PIL на Macosx 10.9?

    Относительный импорт Python вызывает синтаксический анализ: неверный синтаксис

    python gnuplot читает файл csv для построения графика по оси x в порядке чтения или порядка строк

    Как распознает список, чтобы сгладить список python?

    копировать / вырезать / вставлять функции в мою программу типа «блокнот»

    Получить список переменных и методов класса в Python

    Строковый эквивалент = +, но существующая строка как добавленная, а не добавленная к новой строке

    Различия между isinstance () и type () в python

    Python - лучший язык программирования в мире.