我正在使用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次重试才能连接。 –