From 9a8e2c8d905bc1e5b62c6f5e246d2574a645b73e Mon Sep 17 00:00:00 2001 From: Per Larsson Date: Mon, 29 Nov 2021 12:55:08 +0100 Subject: Moved GC to background thread and added endpoint to trigger/status GC. --- zenserver/admin/admin.cpp | 43 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) (limited to 'zenserver/admin/admin.cpp') diff --git a/zenserver/admin/admin.cpp b/zenserver/admin/admin.cpp index 2dd9b110f..0d7a57e36 100644 --- a/zenserver/admin/admin.cpp +++ b/zenserver/admin/admin.cpp @@ -5,11 +5,14 @@ #include "admin.h" #include +#include namespace zen { HttpAdminService::HttpAdminService() { + using namespace std::literals; + m_Router.RegisterRoute( "health", [this](HttpRouterRequest& Req) { @@ -19,12 +22,50 @@ HttpAdminService::HttpAdminService() }, HttpVerb::kGet); + m_Router.RegisterRoute( + "gc", + [this](HttpRouterRequest& Req) { + CbObject Response; + if (m_GcHandler.Status) + { + Response = m_GcHandler.Status(); + } + else + { + CbObjectWriter Writer; + Writer << "Status"sv + << "Ok"sv; + Response = Writer.Save(); + } + Req.ServerRequest().WriteResponse(HttpResponseCode::OK, Response); + }, + HttpVerb::kGet); + + m_Router.RegisterRoute( + "gc", + [this](HttpRouterRequest& Req) { + CbObject Response; + if (m_GcHandler.Trigger) + { + Response = m_GcHandler.Trigger(); + } + else + { + CbObjectWriter Writer; + Writer << "Status"sv + << "Ok"sv; + Response = Writer.Save(); + } + Req.ServerRequest().WriteResponse(HttpResponseCode::OK, Response); + }, + HttpVerb::kPost); + // RPC endpoint m_Router.RegisterRoute( "", [this](HttpRouterRequest& Req) { CbObject Payload = Req.ServerRequest().ReadPayloadObject(); - + CbObjectWriter Obj; Obj.AddBool("ok", true); Req.ServerRequest().WriteResponse(HttpResponseCode::OK, Obj.Save()); -- cgit v1.2.3