提交 34ca37d9 编写于 作者: J jinhai

MS-273 Add some logs and reformat code


Former-commit-id: 5dfd98a0b954d5cc44ae40f6b14ce65a15d76f80
上级 33d6250e
...@@ -89,7 +89,7 @@ void Cache::erase(const std::string& key) { ...@@ -89,7 +89,7 @@ void Cache::erase(const std::string& key) {
const DataObjPtr& data_ptr = obj_ptr->data_; const DataObjPtr& data_ptr = obj_ptr->data_;
usage_ -= data_ptr->size(); usage_ -= data_ptr->size();
SERVER_LOG_DEBUG << "Erase " << key << " from cache"; SERVER_LOG_DEBUG << "Erase " << key << " size: " << data_ptr->size();
lru_.erase(key); lru_.erase(key);
} }
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
// Proprietary and confidential. // Proprietary and confidential.
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
#include "utils/Log.h"
#include "CacheMgr.h" #include "CacheMgr.h"
#include "metrics/Metrics.h" #include "metrics/Metrics.h"
...@@ -20,6 +21,7 @@ CacheMgr::~CacheMgr() { ...@@ -20,6 +21,7 @@ CacheMgr::~CacheMgr() {
uint64_t CacheMgr::ItemCount() const { uint64_t CacheMgr::ItemCount() const {
if(cache_ == nullptr) { if(cache_ == nullptr) {
SERVER_LOG_ERROR << "Cache doesn't exist";
return 0; return 0;
} }
...@@ -28,6 +30,7 @@ uint64_t CacheMgr::ItemCount() const { ...@@ -28,6 +30,7 @@ uint64_t CacheMgr::ItemCount() const {
bool CacheMgr::ItemExists(const std::string& key) { bool CacheMgr::ItemExists(const std::string& key) {
if(cache_ == nullptr) { if(cache_ == nullptr) {
SERVER_LOG_ERROR << "Cache doesn't exist";
return false; return false;
} }
...@@ -36,6 +39,7 @@ bool CacheMgr::ItemExists(const std::string& key) { ...@@ -36,6 +39,7 @@ bool CacheMgr::ItemExists(const std::string& key) {
DataObjPtr CacheMgr::GetItem(const std::string& key) { DataObjPtr CacheMgr::GetItem(const std::string& key) {
if(cache_ == nullptr) { if(cache_ == nullptr) {
SERVER_LOG_ERROR << "Cache doesn't exist";
return nullptr; return nullptr;
} }
server::Metrics::GetInstance().CacheAccessTotalIncrement(); server::Metrics::GetInstance().CacheAccessTotalIncrement();
...@@ -45,6 +49,7 @@ DataObjPtr CacheMgr::GetItem(const std::string& key) { ...@@ -45,6 +49,7 @@ DataObjPtr CacheMgr::GetItem(const std::string& key) {
engine::Index_ptr CacheMgr::GetIndex(const std::string& key) { engine::Index_ptr CacheMgr::GetIndex(const std::string& key) {
DataObjPtr obj = GetItem(key); DataObjPtr obj = GetItem(key);
if(obj != nullptr) { if(obj != nullptr) {
SERVER_LOG_ERROR << "Can't get object from key: " << key;
return obj->data(); return obj->data();
} }
...@@ -53,6 +58,7 @@ engine::Index_ptr CacheMgr::GetIndex(const std::string& key) { ...@@ -53,6 +58,7 @@ engine::Index_ptr CacheMgr::GetIndex(const std::string& key) {
void CacheMgr::InsertItem(const std::string& key, const DataObjPtr& data) { void CacheMgr::InsertItem(const std::string& key, const DataObjPtr& data) {
if(cache_ == nullptr) { if(cache_ == nullptr) {
SERVER_LOG_ERROR << "Cache doesn't exist";
return; return;
} }
...@@ -62,6 +68,7 @@ void CacheMgr::InsertItem(const std::string& key, const DataObjPtr& data) { ...@@ -62,6 +68,7 @@ void CacheMgr::InsertItem(const std::string& key, const DataObjPtr& data) {
void CacheMgr::InsertItem(const std::string& key, const engine::Index_ptr& index) { void CacheMgr::InsertItem(const std::string& key, const engine::Index_ptr& index) {
if(cache_ == nullptr) { if(cache_ == nullptr) {
SERVER_LOG_ERROR << "Cache doesn't exist";
return; return;
} }
...@@ -72,6 +79,7 @@ void CacheMgr::InsertItem(const std::string& key, const engine::Index_ptr& index ...@@ -72,6 +79,7 @@ void CacheMgr::InsertItem(const std::string& key, const engine::Index_ptr& index
void CacheMgr::EraseItem(const std::string& key) { void CacheMgr::EraseItem(const std::string& key) {
if(cache_ == nullptr) { if(cache_ == nullptr) {
SERVER_LOG_ERROR << "Cache doesn't exist";
return; return;
} }
...@@ -81,6 +89,7 @@ void CacheMgr::EraseItem(const std::string& key) { ...@@ -81,6 +89,7 @@ void CacheMgr::EraseItem(const std::string& key) {
void CacheMgr::PrintInfo() { void CacheMgr::PrintInfo() {
if(cache_ == nullptr) { if(cache_ == nullptr) {
SERVER_LOG_ERROR << "Cache doesn't exist";
return; return;
} }
...@@ -89,6 +98,7 @@ void CacheMgr::PrintInfo() { ...@@ -89,6 +98,7 @@ void CacheMgr::PrintInfo() {
void CacheMgr::ClearCache() { void CacheMgr::ClearCache() {
if(cache_ == nullptr) { if(cache_ == nullptr) {
SERVER_LOG_ERROR << "Cache doesn't exist";
return; return;
} }
...@@ -97,6 +107,7 @@ void CacheMgr::ClearCache() { ...@@ -97,6 +107,7 @@ void CacheMgr::ClearCache() {
int64_t CacheMgr::CacheUsage() const { int64_t CacheMgr::CacheUsage() const {
if(cache_ == nullptr) { if(cache_ == nullptr) {
SERVER_LOG_ERROR << "Cache doesn't exist";
return 0; return 0;
} }
...@@ -105,6 +116,7 @@ int64_t CacheMgr::CacheUsage() const { ...@@ -105,6 +116,7 @@ int64_t CacheMgr::CacheUsage() const {
int64_t CacheMgr::CacheCapacity() const { int64_t CacheMgr::CacheCapacity() const {
if(cache_ == nullptr) { if(cache_ == nullptr) {
SERVER_LOG_ERROR << "Cache doesn't exist";
return 0; return 0;
} }
...@@ -113,6 +125,7 @@ int64_t CacheMgr::CacheCapacity() const { ...@@ -113,6 +125,7 @@ int64_t CacheMgr::CacheCapacity() const {
void CacheMgr::SetCapacity(int64_t capacity) { void CacheMgr::SetCapacity(int64_t capacity) {
if(cache_ == nullptr) { if(cache_ == nullptr) {
SERVER_LOG_ERROR << "Cache doesn't exist";
return; return;
} }
cache_->set_capacity(capacity); cache_->set_capacity(capacity);
......
...@@ -12,10 +12,14 @@ namespace zilliz { ...@@ -12,10 +12,14 @@ namespace zilliz {
namespace milvus { namespace milvus {
namespace cache { namespace cache {
namespace {
constexpr int64_t unit = 1024 * 1024 * 1024;
}
CpuCacheMgr::CpuCacheMgr() { CpuCacheMgr::CpuCacheMgr() {
server::ConfigNode& config = server::ServerConfig::GetInstance().GetConfig(server::CONFIG_CACHE); server::ConfigNode& config = server::ServerConfig::GetInstance().GetConfig(server::CONFIG_CACHE);
int64_t cap = config.GetInt64Value(server::CONFIG_CPU_CACHE_CAPACITY, 16); int64_t cap = config.GetInt64Value(server::CONFIG_CPU_CACHE_CAPACITY, 16);
cap *= 1024*1024*1024; cap *= unit;
cache_ = std::make_shared<Cache>(cap, 1UL<<32); cache_ = std::make_shared<Cache>(cap, 1UL<<32);
double free_percent = config.GetDoubleValue(server::CACHE_FREE_PERCENT, 0.85); double free_percent = config.GetDoubleValue(server::CACHE_FREE_PERCENT, 0.85);
......
...@@ -11,10 +11,14 @@ namespace zilliz { ...@@ -11,10 +11,14 @@ namespace zilliz {
namespace milvus { namespace milvus {
namespace cache { namespace cache {
namespace {
constexpr int64_t unit = 1024 * 1024 * 1024;
}
GpuCacheMgr::GpuCacheMgr() { GpuCacheMgr::GpuCacheMgr() {
server::ConfigNode& config = server::ServerConfig::GetInstance().GetConfig(server::CONFIG_CACHE); server::ConfigNode& config = server::ServerConfig::GetInstance().GetConfig(server::CONFIG_CACHE);
int64_t cap = config.GetInt64Value(server::CONFIG_GPU_CACHE_CAPACITY, 1); int64_t cap = config.GetInt64Value(server::CONFIG_GPU_CACHE_CAPACITY, 1);
cap *= 1024*1024*1024; cap *= unit;
cache_ = std::make_shared<Cache>(cap, 1UL<<32); cache_ = std::make_shared<Cache>(cap, 1UL<<32);
} }
......
...@@ -94,7 +94,7 @@ double ...@@ -94,7 +94,7 @@ double
ConfigNode::GetDoubleValue(const std::string &param_key, double default_val) const { ConfigNode::GetDoubleValue(const std::string &param_key, double default_val) const {
std::string val = GetValue(param_key); std::string val = GetValue(param_key);
if (!val.empty()) { if (!val.empty()) {
return std::strtold(val.c_str(), nullptr); return std::strtod(val.c_str(), nullptr);
} else { } else {
return default_val; return default_val;
} }
......
...@@ -9,14 +9,14 @@ namespace zilliz { ...@@ -9,14 +9,14 @@ namespace zilliz {
namespace milvus { namespace milvus {
namespace engine { namespace engine {
const size_t K = 1024UL; constexpr size_t K = 1024UL;
const size_t M = K * K; constexpr size_t M = K * K;
const size_t G = K * M; constexpr size_t G = K * M;
const size_t T = K * G; constexpr size_t T = K * G;
const size_t MAX_TABLE_FILE_MEM = 128 * M; constexpr size_t MAX_TABLE_FILE_MEM = 128 * M;
const int VECTOR_TYPE_SIZE = sizeof(float); constexpr int VECTOR_TYPE_SIZE = sizeof(float);
} // namespace engine } // namespace engine
} // namespace milvus } // namespace milvus
......
...@@ -12,11 +12,8 @@ namespace zilliz { ...@@ -12,11 +12,8 @@ namespace zilliz {
namespace milvus { namespace milvus {
namespace engine { namespace engine {
DB::~DB() {}
void DB::Open(const Options& options, DB** dbptr) { void DB::Open(const Options& options, DB** dbptr) {
*dbptr = DBFactory::Build(options); *dbptr = DBFactory::Build(options);
return;
} }
} // namespace engine } // namespace engine
......
...@@ -52,7 +52,7 @@ public: ...@@ -52,7 +52,7 @@ public:
DB(const DB&) = delete; DB(const DB&) = delete;
DB& operator=(const DB&) = delete; DB& operator=(const DB&) = delete;
virtual ~DB(); virtual ~DB() = 0;
}; // DB }; // DB
} // namespace engine } // namespace engine
......
...@@ -8,67 +8,88 @@ ...@@ -8,67 +8,88 @@
#include "Meta.h" #include "Meta.h"
#include "Options.h" #include "Options.h"
namespace zilliz { namespace zilliz {
namespace milvus { namespace milvus {
namespace engine { namespace engine {
namespace meta { namespace meta {
auto StoragePrototype(const std::string& path); auto StoragePrototype(const std::string &path);
class DBMetaImpl : public Meta { class DBMetaImpl : public Meta {
public: public:
DBMetaImpl(const DBMetaOptions& options_); explicit DBMetaImpl(const DBMetaOptions &options_);
Status
CreateTable(TableSchema &table_schema) override;
Status
DescribeTable(TableSchema &group_info_) override;
Status
HasTable(const std::string &table_id, bool &has_or_not) override;
Status
AllTables(std::vector<TableSchema> &table_schema_array) override;
Status
DeleteTable(const std::string &table_id) override;
virtual Status CreateTable(TableSchema& table_schema) override; Status
virtual Status DescribeTable(TableSchema& group_info_) override; DeleteTableFiles(const std::string &table_id) override;
virtual Status HasTable(const std::string& table_id, bool& has_or_not) override;
virtual Status AllTables(std::vector<TableSchema>& table_schema_array) override;
virtual Status DeleteTable(const std::string& table_id) override; Status
virtual Status DeleteTableFiles(const std::string& table_id) override; CreateTableFile(TableFileSchema &file_schema) override;
virtual Status CreateTableFile(TableFileSchema& file_schema) override; Status
virtual Status DropPartitionsByDates(const std::string& table_id, DropPartitionsByDates(const std::string &table_id, const DatesT &dates) override;
const DatesT& dates) override;
virtual Status GetTableFiles(const std::string& table_id, Status
const std::vector<size_t>& ids, GetTableFiles(const std::string &table_id, const std::vector<size_t> &ids, TableFilesSchema &table_files) override;
TableFilesSchema& table_files) override;
virtual Status HasNonIndexFiles(const std::string& table_id, bool& has) override; Status
HasNonIndexFiles(const std::string &table_id, bool &has) override;
virtual Status UpdateTableFilesToIndex(const std::string& table_id) override; Status
UpdateTableFilesToIndex(const std::string &table_id) override;
virtual Status UpdateTableFile(TableFileSchema& file_schema) override; Status
UpdateTableFile(TableFileSchema &file_schema) override;
virtual Status UpdateTableFiles(TableFilesSchema& files) override; Status
UpdateTableFiles(TableFilesSchema &files) override;
virtual Status FilesToSearch(const std::string& table_id, Status
const DatesT& partition, FilesToSearch(const std::string &table_id, const DatesT &partition, DatePartionedTableFilesSchema &files) override;
DatePartionedTableFilesSchema& files) override;
virtual Status FilesToMerge(const std::string& table_id, Status
DatePartionedTableFilesSchema& files) override; FilesToMerge(const std::string &table_id, DatePartionedTableFilesSchema &files) override;
virtual Status FilesToIndex(TableFilesSchema&) override; Status
FilesToIndex(TableFilesSchema &) override;
virtual Status Archive() override; Status
Archive() override;
virtual Status Size(uint64_t& result) override; Status
Size(uint64_t &result) override;
virtual Status CleanUp() override; Status
CleanUp() override;
virtual Status CleanUpFilesWithTTL(uint16_t seconds) override; Status
CleanUpFilesWithTTL(uint16_t seconds) override;
virtual Status DropAll() override; Status
DropAll() override;
virtual Status Count(const std::string& table_id, uint64_t& result) override; Status Count(const std::string &table_id, uint64_t &result) override;
virtual ~DBMetaImpl(); ~DBMetaImpl() override;
private: private:
Status NextFileId(std::string& file_id); Status NextFileId(std::string &file_id);
Status NextTableId(std::string& table_id); Status NextTableId(std::string &table_id);
Status DiscardFiles(long to_discard_size); Status DiscardFiles(long to_discard_size);
Status Initialize(); Status Initialize();
......
...@@ -13,7 +13,7 @@ namespace zilliz { ...@@ -13,7 +13,7 @@ namespace zilliz {
namespace milvus { namespace milvus {
namespace engine { namespace engine {
IDGenerator::~IDGenerator() {} constexpr size_t SimpleIDGenerator::MAX_IDS_PER_MICRO;
IDNumber SimpleIDGenerator::GetNextIDNumber() { IDNumber SimpleIDGenerator::GetNextIDNumber() {
auto now = std::chrono::system_clock::now(); auto now = std::chrono::system_clock::now();
......
...@@ -10,28 +10,34 @@ ...@@ -10,28 +10,34 @@
#include <cstddef> #include <cstddef>
#include <vector> #include <vector>
namespace zilliz { namespace zilliz {
namespace milvus { namespace milvus {
namespace engine { namespace engine {
class IDGenerator { class IDGenerator {
public: public:
virtual IDNumber GetNextIDNumber() = 0; virtual IDNumber GetNextIDNumber() = 0;
virtual void GetNextIDNumbers(size_t n, IDNumbers& ids) = 0; virtual void GetNextIDNumbers(size_t n, IDNumbers &ids) = 0;
virtual ~IDGenerator() = 0;
virtual ~IDGenerator();
}; // IDGenerator }; // IDGenerator
class SimpleIDGenerator : public IDGenerator { class SimpleIDGenerator : public IDGenerator {
public: public:
virtual IDNumber GetNextIDNumber() override; ~SimpleIDGenerator() override = default;
virtual void GetNextIDNumbers(size_t n, IDNumbers& ids) override;
IDNumber
GetNextIDNumber() override;
void
GetNextIDNumbers(size_t n, IDNumbers &ids) override;
private:
void
NextIDNumbers(size_t n, IDNumbers &ids);
private: static constexpr size_t MAX_IDS_PER_MICRO = 1000;
void NextIDNumbers(size_t n, IDNumbers& ids);
const size_t MAX_IDS_PER_MICRO = 1000;
}; // SimpleIDGenerator }; // SimpleIDGenerator
......
...@@ -23,6 +23,7 @@ class Meta { ...@@ -23,6 +23,7 @@ class Meta {
public: public:
using Ptr = std::shared_ptr<Meta>; using Ptr = std::shared_ptr<Meta>;
virtual ~Meta() = 0;
virtual Status CreateTable(TableSchema& table_schema) = 0; virtual Status CreateTable(TableSchema& table_schema) = 0;
virtual Status DescribeTable(TableSchema& table_schema) = 0; virtual Status DescribeTable(TableSchema& table_schema) = 0;
virtual Status HasTable(const std::string& table_id, bool& has_or_not) = 0; virtual Status HasTable(const std::string& table_id, bool& has_or_not) = 0;
......
...@@ -12,79 +12,80 @@ ...@@ -12,79 +12,80 @@
#include "mysql++/mysql++.h" #include "mysql++/mysql++.h"
#include <mutex> #include <mutex>
namespace zilliz { namespace zilliz {
namespace milvus { namespace milvus {
namespace engine { namespace engine {
namespace meta { namespace meta {
// auto StoragePrototype(const std::string& path); // auto StoragePrototype(const std::string& path);
using namespace mysqlpp; using namespace mysqlpp;
class MySQLMetaImpl : public Meta { class MySQLMetaImpl : public Meta {
public: public:
MySQLMetaImpl(const DBMetaOptions& options_, const int& mode); MySQLMetaImpl(const DBMetaOptions &options_, const int &mode);
virtual Status CreateTable(TableSchema& table_schema) override; Status CreateTable(TableSchema &table_schema) override;
virtual Status DescribeTable(TableSchema& group_info_) override; Status DescribeTable(TableSchema &group_info_) override;
virtual Status HasTable(const std::string& table_id, bool& has_or_not) override; Status HasTable(const std::string &table_id, bool &has_or_not) override;
virtual Status AllTables(std::vector<TableSchema>& table_schema_array) override; Status AllTables(std::vector<TableSchema> &table_schema_array) override;
virtual Status DeleteTable(const std::string& table_id) override; Status DeleteTable(const std::string &table_id) override;
virtual Status DeleteTableFiles(const std::string& table_id) override; Status DeleteTableFiles(const std::string &table_id) override;
virtual Status CreateTableFile(TableFileSchema& file_schema) override; Status CreateTableFile(TableFileSchema &file_schema) override;
virtual Status DropPartitionsByDates(const std::string& table_id, Status DropPartitionsByDates(const std::string &table_id,
const DatesT& dates) override; const DatesT &dates) override;
virtual Status GetTableFiles(const std::string& table_id, Status GetTableFiles(const std::string &table_id,
const std::vector<size_t>& ids, const std::vector<size_t> &ids,
TableFilesSchema& table_files) override; TableFilesSchema &table_files) override;
virtual Status HasNonIndexFiles(const std::string& table_id, bool& has) override; Status HasNonIndexFiles(const std::string &table_id, bool &has) override;
virtual Status UpdateTableFile(TableFileSchema& file_schema) override; Status UpdateTableFile(TableFileSchema &file_schema) override;
virtual Status UpdateTableFilesToIndex(const std::string& table_id) override; Status UpdateTableFilesToIndex(const std::string &table_id) override;
virtual Status UpdateTableFiles(TableFilesSchema& files) override; Status UpdateTableFiles(TableFilesSchema &files) override;
virtual Status FilesToSearch(const std::string& table_id, Status FilesToSearch(const std::string &table_id,
const DatesT& partition, const DatesT &partition,
DatePartionedTableFilesSchema& files) override; DatePartionedTableFilesSchema &files) override;
virtual Status FilesToMerge(const std::string& table_id, Status FilesToMerge(const std::string &table_id,
DatePartionedTableFilesSchema& files) override; DatePartionedTableFilesSchema &files) override;
virtual Status FilesToIndex(TableFilesSchema&) override; Status FilesToIndex(TableFilesSchema &) override;
virtual Status Archive() override; Status Archive() override;
virtual Status Size(uint64_t& result) override; Status Size(uint64_t &result) override;
virtual Status CleanUp() override; Status CleanUp() override;
virtual Status CleanUpFilesWithTTL(uint16_t seconds) override; Status CleanUpFilesWithTTL(uint16_t seconds) override;
virtual Status DropAll() override; Status DropAll() override;
virtual Status Count(const std::string& table_id, uint64_t& result) override; Status Count(const std::string &table_id, uint64_t &result) override;
virtual ~MySQLMetaImpl(); virtual ~MySQLMetaImpl();
private: private:
Status NextFileId(std::string& file_id); Status NextFileId(std::string &file_id);
Status NextTableId(std::string& table_id); Status NextTableId(std::string &table_id);
Status DiscardFiles(long long to_discard_size); Status DiscardFiles(long long to_discard_size);
Status Initialize(); Status Initialize();
const DBMetaOptions options_; const DBMetaOptions options_;
const int mode_; const int mode_;
std::shared_ptr<MySQLConnectionPool> mysql_connection_pool_; std::shared_ptr<MySQLConnectionPool> mysql_connection_pool_;
bool safe_grab = false; bool safe_grab = false;
// std::mutex connectionMutex_; // std::mutex connectionMutex_;
}; // DBMetaImpl }; // DBMetaImpl
} // namespace meta } // namespace meta
} // namespace engine } // namespace engine
......
...@@ -20,6 +20,7 @@ class ReuseCacheIndexStrategy { ...@@ -20,6 +20,7 @@ class ReuseCacheIndexStrategy {
public: public:
bool Schedule(const SearchContextPtr &context, std::list<ScheduleTaskPtr>& task_list) { bool Schedule(const SearchContextPtr &context, std::list<ScheduleTaskPtr>& task_list) {
if(context == nullptr) { if(context == nullptr) {
ENGINE_LOG_ERROR << "Task Dispatch context doesn't exist";
return false; return false;
} }
...@@ -64,6 +65,7 @@ class DeleteTableStrategy { ...@@ -64,6 +65,7 @@ class DeleteTableStrategy {
public: public:
bool Schedule(const DeleteContextPtr &context, std::list<ScheduleTaskPtr> &task_list) { bool Schedule(const DeleteContextPtr &context, std::list<ScheduleTaskPtr> &task_list) {
if (context == nullptr) { if (context == nullptr) {
ENGINE_LOG_ERROR << "Task Dispatch context doesn't exist";
return false; return false;
} }
...@@ -103,6 +105,7 @@ public: ...@@ -103,6 +105,7 @@ public:
bool TaskDispatchStrategy::Schedule(const ScheduleContextPtr &context_ptr, bool TaskDispatchStrategy::Schedule(const ScheduleContextPtr &context_ptr,
std::list<zilliz::milvus::engine::ScheduleTaskPtr> &task_list) { std::list<zilliz::milvus::engine::ScheduleTaskPtr> &task_list) {
if(context_ptr == nullptr) { if(context_ptr == nullptr) {
ENGINE_LOG_ERROR << "Task Dispatch context doesn't exist";
return false; return false;
} }
......
...@@ -31,6 +31,7 @@ TaskScheduler& TaskScheduler::GetInstance() { ...@@ -31,6 +31,7 @@ TaskScheduler& TaskScheduler::GetInstance() {
bool bool
TaskScheduler::Start() { TaskScheduler::Start() {
if(!stopped_) { if(!stopped_) {
SERVER_LOG_INFO << "Task Scheduler isn't started";
return true; return true;
} }
...@@ -47,6 +48,7 @@ TaskScheduler::Start() { ...@@ -47,6 +48,7 @@ TaskScheduler::Start() {
bool bool
TaskScheduler::Stop() { TaskScheduler::Stop() {
if(stopped_) { if(stopped_) {
SERVER_LOG_INFO << "Task Scheduler already stopped";
return true; return true;
} }
...@@ -80,7 +82,7 @@ TaskScheduler::TaskDispatchWorker() { ...@@ -80,7 +82,7 @@ TaskScheduler::TaskDispatchWorker() {
ScheduleTaskPtr task_ptr = task_dispatch_queue_.Take(); ScheduleTaskPtr task_ptr = task_dispatch_queue_.Take();
if(task_ptr == nullptr) { if(task_ptr == nullptr) {
SERVER_LOG_INFO << "Stop db task dispatch thread"; SERVER_LOG_INFO << "Stop db task dispatch thread";
break;//exit return true;
} }
//execute task //execute task
...@@ -98,8 +100,8 @@ TaskScheduler::TaskWorker() { ...@@ -98,8 +100,8 @@ TaskScheduler::TaskWorker() {
while(true) { while(true) {
ScheduleTaskPtr task_ptr = task_queue_.Take(); ScheduleTaskPtr task_ptr = task_queue_.Take();
if(task_ptr == nullptr) { if(task_ptr == nullptr) {
SERVER_LOG_INFO << "Stop db task thread"; SERVER_LOG_INFO << "Stop db task worker thread";
break;//exit return true;
} }
//execute task //execute task
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册