From 51c343630f8e0942ef631e974b82c148860f9b21 Mon Sep 17 00:00:00 2001 From: Noah Hilverling Date: Thu, 24 Sep 2020 14:18:49 +0200 Subject: [PATCH] IDO: Make sure to insert program status during reconnect() --- lib/db_ido/dbconnection.cpp | 6 +++--- lib/db_ido/dbconnection.hpp | 2 ++ lib/db_ido_mysql/idomysqlconnection.hpp | 2 -- lib/db_ido_pgsql/idopgsqlconnection.hpp | 2 -- 4 files changed, 5 insertions(+), 7 deletions(-) diff --git a/lib/db_ido/dbconnection.cpp b/lib/db_ido/dbconnection.cpp index 6ab9b4e10..72c1c1c7b 100644 --- a/lib/db_ido/dbconnection.cpp +++ b/lib/db_ido/dbconnection.cpp @@ -150,7 +150,7 @@ void DbConnection::UpdateProgramStatus() DbQuery query1; query1.Table = "programstatus"; query1.IdColumn = "programstatus_id"; - query1.Type = DbQueryInsert | DbQueryUpdate; + query1.Type = DbQueryInsert | DbQueryDelete; query1.Category = DbCatProgramStatus; query1.Fields = new Dictionary({ @@ -177,7 +177,7 @@ void DbConnection::UpdateProgramStatus() { "instance_id", 0 } /* DbConnection class fills in real ID */ }); - query1.Priority = PriorityHigh; + query1.Priority = PriorityImmediate; queries.emplace_back(std::move(query1)); DbQuery query2; @@ -484,7 +484,7 @@ void DbConnection::UpdateAllObjects() continue; for (const ConfigObject::Ptr& object : dtype->GetObjects()) { - UpdateObject(object); + m_QueryQueue.Enqueue([this, object](){ UpdateObject(object); }, PriorityHigh); } } } diff --git a/lib/db_ido/dbconnection.hpp b/lib/db_ido/dbconnection.hpp index 84e28d4c6..38c93f3ba 100644 --- a/lib/db_ido/dbconnection.hpp +++ b/lib/db_ido/dbconnection.hpp @@ -95,6 +95,8 @@ protected: void IncreasePendingQueries(int count); void DecreasePendingQueries(int count); + WorkQueue m_QueryQueue{10000000, 1, LogNotice}; + private: bool m_IDCacheValid{false}; std::map, String> m_ConfigHashes; diff --git a/lib/db_ido_mysql/idomysqlconnection.hpp b/lib/db_ido_mysql/idomysqlconnection.hpp index 3c1bf916b..571d7f4f7 100644 --- a/lib/db_ido_mysql/idomysqlconnection.hpp +++ b/lib/db_ido_mysql/idomysqlconnection.hpp @@ -54,8 +54,6 @@ protected: private: DbReference m_InstanceID; - WorkQueue m_QueryQueue{10000000, 1, LogNotice}; - Library m_Library; std::unique_ptr m_Mysql; diff --git a/lib/db_ido_pgsql/idopgsqlconnection.hpp b/lib/db_ido_pgsql/idopgsqlconnection.hpp index e355116d4..70726357d 100644 --- a/lib/db_ido_pgsql/idopgsqlconnection.hpp +++ b/lib/db_ido_pgsql/idopgsqlconnection.hpp @@ -48,8 +48,6 @@ protected: private: DbReference m_InstanceID; - WorkQueue m_QueryQueue{1000000, 1, LogNotice}; - Library m_Library; std::unique_ptr m_Pgsql;