From 21332b63ad3066027c004aae21cfb277283bf985 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Tue, 30 Jul 2019 15:49:07 +0800 Subject: [PATCH] 1 --- cpp/httpclientpool.cc | 9 +++++++++ cpp/httpclientpool.h | 2 ++ 2 files changed, 11 insertions(+) diff --git a/cpp/httpclientpool.cc b/cpp/httpclientpool.cc index 0734db6..5f1b27c 100644 --- a/cpp/httpclientpool.cc +++ b/cpp/httpclientpool.cc @@ -2,6 +2,7 @@ #include #include +#include #include #include @@ -347,6 +348,7 @@ namespace f8 long long hash_code) { + ++pending_num; AsyncHttpRequest* p = new AsyncHttpRequest(); { p->context_id = ++curr_seqid; @@ -401,6 +403,7 @@ namespace f8 public: long long curr_seqid = 0; + std::atomic pending_num = {0}; std::map async_http_hash; unsigned short exec_async_http_msgid = 0; @@ -418,6 +421,7 @@ namespace f8 MsgQueue::Instance()->RegisterCallBack(impl_->exec_async_http_msgid, [] (const a8::XParams& param) { + --(HttpClientPool::Instance()->impl_->pending_num); if (param.param1.GetInt() == AHE_NO_ERROR) { a8::XObject* xobj = (a8::XObject*)param.param2.GetUserData(); HttpClientPool::Instance()->impl_->AsyncHttpOnOk(param.sender, *xobj); @@ -453,4 +457,9 @@ namespace f8 impl_->InternalExecAsyncHttp(2, url, url_params, content.c_str(), headers, param, on_ok, on_error, hash_code); } + long long HttpClientPool::GetPendingNum() + { + return impl_->pending_num; + } + } diff --git a/cpp/httpclientpool.h b/cpp/httpclientpool.h index df6e766..38272b1 100644 --- a/cpp/httpclientpool.h +++ b/cpp/httpclientpool.h @@ -28,6 +28,8 @@ namespace f8 void HttpPost(a8::XParams param, AsyncHttpOnOkFunc on_ok, AsyncHttpOnErrorFunc on_error, const char* url, a8::XObject url_params, const std::string& content, long long hash_code, a8::XObject* headers = nullptr); + //获取执行中的数量 + long long GetPendingNum(); private: HttpClientPoolImpl* impl_ = nullptr;