达到速率限制后如何继续在for循环中使用其他应用重试相同的请求?

时间:2019-05-06 12:14:13

标签: python python-3.x

如果我的一个应用程序达到了速率限制,我需要使用其他应用程序进行切换并发出相同的请求。

我正在使用for循环遍历应用程序。如果返回的状态是88,告诉我应用程序已达到速率限制,那么我将使用Continue语句来切换应用程序,否则我会因为请求成功而退出for循环。

page = 1
total_tweets = []


while True:

  for app in apps:

    response = app.fetch_tweets(id = user["user_id"], page = page)

    if response["status"] == 88:
      print(app.APP_ID, "reset")
      continue
    else :
      break

  print("here")

  if response["data"]:
    for tweet in response["data"]:
      total_tweets.append(tweet._json)
  else :
    print("here2")
    break
  page = page + 1

print("done", app.APP_ID, len(total_tweets))

当我点击if语句== 88时,它需要使用for循环中的下一个应用重复该请求。

但是我注意到,当我点击if语句== 88而不是直接循环进行for循环的另一次迭代时,它会打印(“ here”),这意味着它将继续执行代码,而我不希望这样做直到成功发出请求为止(状态不是88时)

我希望当到达时继续直接进入for循环的下一个迭代。

1 个答案:

答案 0 :(得分:0)

对我来说,一切正常。 Meby您正在使用break语句用于另一个应用程序,但是您不知道吗?您可以在break之前添加其他打印,并检查是哪个应用程序导致了该打印。

您还可以更改if语句:

if response["status"] != 88:
  break
else :
  print(app.APP_ID, "reset")

因此,在这种情况下,如果状态不同于88(不使用继续),您将自动转到下一个应用程序。