# introduce a new function
# @return: succeed, new_ip
def exec(ip, url):
try:
# do what you want to do
return True, ip
except:
# change your id
return False, new_ip
# your original logics
urls = [url1, url2, ..., url10]
i = 0
ip = ip1
while i <= len(urls):
succeed, ip = exec(ip, urls[i])
if succeed:
i +=1
減小try-catch的粒度呢?或者貼上你的程式碼來分析吧,你說的exception後繼續執行原來的程式碼有點模糊。
【修改】
看了下另外兩個回答,基本上是我在下面評論中提出的兩個思路,應該說大家的思路是基本一致的。這裡修改下,給一個程式碼方案:
我剛剛寫了一個,是產生
Access Token
的,Access Token
在数据库中是唯一的,但是生成Access Token
的函数不能保证每次生成的Access Token
都是不一样的。所以我用了一个很恶心的while
循環。大致如下:不高明,但可以用。
或是講下你的業務,也許不用這麼噁心。
我的方案:
這種方案在單一進程、單執行緒同步請求是應該可以的。