/
uzer_007
/
reindexer
Обзор
Документация
Войти
/
uzer_007
/
reindexer
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
cpp_src/core/activity/activity.cc
54 строки
1 KB
madschemas
Update to version v5.12.0
20 мар 2026, 08:17
20 мар 2026, 08:17
2eef2e6
Код
Авторство
О чём код?
#include "activity.h" #include <iomanip> #include <sstream> #include <string> #include "core/cjson/jsonbuilder.h" #include "tools/timetools.h" namespace reindexer { std::string_view Activity::DescribeState(State st) noexcept { switch (st) { case InProgress: return "in_progress"; case WaitLock: return "wait_lock"; case Sending: return "sending"; case IndexesLookup: return "indexes_lookup"; case SelectLoop: return "select_loop"; case ProxiedViaClusterProxy: return "proxied_via_cluster_proxy"; case ProxiedViaShardingProxy: return "proxied_via_sharding_proxy"; default: abort(); } } void Activity::GetJSON(WrSerializer& ser) const { using namespace std::chrono; JsonBuilder builder(ser); builder.Put("client", activityTracer); if (!user.empty()) { builder.Put("user", user); } builder.Put("query", query); builder.Put("query_id", id); std::time_t t = system_clock_w::to_time_t(startTime); char buffer[80]; std::tm tm = reindexer::localtime(t); std::strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", &tm); std::stringstream ss; ss << buffer << '.' << std::setw(3) << std::setfill('0') << (duration_cast<milliseconds>(startTime.time_since_epoch()).count() % 1000); builder.Put("query_start", ss.str()); builder.Put("state", DescribeState(state)); if (state == WaitLock) { builder.Put("lock_description", "Wait lock for " + std::string(description)); } builder.End(); } } // namespace reindexer