ithewei преди 4 години
родител
ревизия
050e238f07
променени са 2 файла, в които са добавени 3 реда и са изтрити 2 реда
  1. 2 1
      http/client/AsyncHttpClient.cpp
  2. 1 1
      http/client/AsyncHttpClient.h

+ 2 - 1
http/client/AsyncHttpClient.cpp

@@ -95,7 +95,8 @@ int AsyncHttpClient::doTask(const HttpClientTaskPtr& task) {
             if (task->retry_delay) {
                 // try again after delay
                 setTimeout(ctx->task->retry_delay, [this, task](TimerID timerID){
-                    doTask(task);
+                    hlogi("retry %s %s", http_method_str(task->req->method), task->req->url.c_str());
+                    sendInLoop(task);
                 });
             } else {
                 send(task);

+ 1 - 1
http/client/AsyncHttpClient.h

@@ -117,8 +117,8 @@ public:
         task->req = req;
         task->cb = std::move(resp_cb);
         task->start_time = hloop_now_hrtime(loop_thread.hloop());
-        task->retry_cnt = DEFAULT_FAIL_RETRY_COUNT;
         task->retry_delay = DEFAULT_FAIL_RETRY_DELAY;
+        task->retry_cnt = MIN(DEFAULT_FAIL_RETRY_COUNT, req->timeout * 1000 / task->retry_delay - 1);
         return send(task);
     }