баси c python пока л oop с перерывом - PullRequest
1 голос
/ 26 января 2020

У меня есть базовый c python вопрос.

Я запрашиваю API, который иногда чувствителен ко времени. Я хочу написать al oop в python, который учитывает это. Мне нужна следующая функциональность:

Запрос (возврат r), если запрос возвращается успешно, продолжайте и возвращайте r.

Если нет, я хочу добавить некоторое время к параметры запроса постепенно (так, вероятно, для l oop, для i в диапазоне (24 (часов)): затем добавляйте один час за один раз, пока запрос не будет работать.

Если запрос не работать после for l oop выше, затем появляется сообщение об ошибке в журнале.

Я изо всех сил пытаюсь получить правильный порядок для циклов while / for. Я мог бы сделать несколько своих попыток, но я думаю, что это так. более полезно, если я помещу его в псевдокод:

While True:
  if (r is not successful):
    i = 0:
    while i <= 24:
    add time and query again
    r <-- return query with new time
    i += 1
.......
return r

Как-то так, как мне выйти из l oop, когда запрос возвращен правильно?

Я тоже не уверен мой псевдокод - именно то, что я хочу.

Ответы [ 2 ]

0 голосов
/ 26 января 2020

Вы можете использовать функцию .time ().

import time

while True:
    results = query()

    if results:
        print(results) #or return to any datatype as required.

        time.sleep(wait_period_to_next_query)   #to be given in seconds

        break #if you want to exit the loop after 1 successful query
    else:
        print('Query unsuccessful, retrying after wait period.')
        time.sleep(wait_period)    #wait_period to be given in seconds

Вы можете пропустить строку разрыва, если хотите непрерывно запрашивать API.

0 голосов
/ 26 января 2020

Может ли это работать?

def run_api():
    if success:
        return results
    else:
        return False

While True:
    results = run_api()
    if results:
        break
    else:
        sleep (however you have it coded)
return results
...