我需要向Facebook Graph API發送大約3000條API請求以收集洞察數據。 Facebook爲其API調用設置了速率限制。我目前正在使用python的多處理模塊,並將請求分組爲50個請求池。 我在發送請求成功處理一些請求後發生連接錯誤。我需要製作大約3000個API請求才能收集洞察數據。 Facebook爲其API調用設置了速率限制
requests.exceptions.ConnectionError:( '連接異常中止',ConnectionResetError(10054, '一個現有的連接被強行關閉遠程主機',無,10054,無))
#my multiprocessing pools
pool= mp.Pool(processes = len(s))
results= [ pool.apply_async(get_data, args=(url,)) for url in s]
data = [p.get() for p in results]
#get data function to send requests
def get_data(url):
data = requests.get(url,params=parameters).json()
return(data)
我使用有效期爲2個月的訪問令牌。如果連接被Facebook拒絕,是否有任何方法可以進行3000次通話。
3000!這聽起來不太可能真的需要打這麼多電話。答案几乎肯定會是找到一種方法,以更少的API調用來滿足自己的需求。如果您一遍又一遍地讀取相同的數據,您可能需要考慮緩存響應一段時間。 –
https://developers.facebook.com/docs/graph-api/advanced/rate-limiting – CBroe