2016-12-23 14 views
0

PythonのPyCurl(libcurl)モジュール内で再試行オプションを実装するにはどうすればよいですか?効果に似たもの:5 'http://somesite.com/somefile'PyCurlで再試行オプションを実装する方法

カール--retry 3 --retry遅延

現在のコード:

buffer = BytesIO() 
c = pycurl.Curl() 
c.setopt(c.URL, 'http://somesite.com/somefile') 
with open('output.txt','w') as f: 
    c.setopt(c.WRITEFUNCTION, f.write) 
    c.perform() 

答えて

0

Pycurlは再初期化する方法を知りません。消費者がWRITEDATAまたはWRITEFUNCTIONオプションを使用して提供するため、コードで再試行ロジックを実装する必要があります。

retries_left = 3 
delay_between_retries = 5 # seconds 
success = False 
c = pycurl.Curl() 
c.setopt(c.URL, 'http://somesite.com/somefile') 
while retries_left > 0: 
    try: 
    with open('output.txt', 'w') as f: 
     c.setopt(c.WRITEFUNCTION, f.write) 
     c.perform() 
    success = True 
    break 
    except BaseException as e: 
    retries_left -= 1 
    time.sleep(delay_between_retries) 
# check success 
関連する問題