我正在使用CURL庫進行POST,GET,下載和上傳數據。由於某種原因,如果請求失敗,我們計劃再次重試請求。我們計劃重試5次,即使失敗,我們也會停止向用戶顯示失敗消息。爲此,我們以10秒的延遲循環運行。CURL請求失敗重試方法
我的問題。
1)是我的方法,這是正確的。
2)什麼是最佳實踐。
UPDATE:
int _tmain(int argc, _TCHAR* argv[])
{
CURL *curl;
CURLcode res;
int nRetryCount = 0;
do
{
curl_global_init(CURL_GLOBAL_DEFAULT);
curl = curl_easy_init();
if(curl)
{
curl_easy_setopt(curl, CURLOPT_URL, "http://www.google.com/");
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
if(CURLE_OK == res)
{
break;
}
nRetryCount++;
if (nRetryCount < 5)
{
//wait for 10 sec.
Sleep(10000);
}
}
} while (nRetryCount < 5);
curl_global_cleanup();
return 0;
}
是否有任何代碼來備份此問題?你有沒有嘗試過你的方法呢? – 2013-06-26 03:56:06
5次後不起作用會發生什麼?人們總是會問你爲什麼選擇5?是隨機的選擇?我不太喜歡這些解決方案。我其實和你的問題一樣。我認爲首先你需要將'nRetryCount'設置爲200或300的最大值。然後經過一定次數的運行後,你就可以猜出哪個是nRetryCount的最佳數字。大概需要20到30次重試才能連接。 –