From 85f4c34547f6f5165e21b16f45ea591348e09e2e Mon Sep 17 00:00:00 2001 From: Kevron Rees Date: Wed, 14 Jan 2015 15:03:09 -0800 Subject: [PATCH] Store system time in db, not steady time --- plugins/database/databasesink.cpp | 10 ++++++---- plugins/database/databasesink.h | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/plugins/database/databasesink.cpp b/plugins/database/databasesink.cpp index 8881ae5..048c906 100644 --- a/plugins/database/databasesink.cpp +++ b/plugins/database/databasesink.cpp @@ -28,10 +28,10 @@ static void * cbFunc(Shared* shared) vector > insertList; + double startTime = amb::currentTime(); + while(1) { - usleep(timeout*1000); - DBObject obj = shared->queue.pop(); if( obj.quit ) @@ -45,7 +45,7 @@ static void * cbFunc(Shared* shared) NameValuePair two("value", obj.value); NameValuePair three("source", obj.source); NameValuePair zone("zone", boost::lexical_cast(obj.zone)); - NameValuePair four("time", boost::lexical_cast(obj.time)); + NameValuePair four("time", boost::lexical_cast(amb::Timestamp::instance()->epochTime(obj.time))); NameValuePair five("sequence", boost::lexical_cast(obj.sequence)); NameValuePair six("tripId", shared->tripId); @@ -59,8 +59,10 @@ static void * cbFunc(Shared* shared) insertList.push_back(dict); - if(insertList.size() >= bufferLength) + if(insertList.size() >= bufferLength && amb::currentTime() - startTime >= timeout / 1000) { + startTime = amb::currentTime(); + shared->db->exec("BEGIN IMMEDIATE TRANSACTION"); for(int i=0; i< insertList.size(); i++) { diff --git a/plugins/database/databasesink.h b/plugins/database/databasesink.h index 459ec92..a382043 100644 --- a/plugins/database/databasesink.h +++ b/plugins/database/databasesink.h @@ -97,7 +97,7 @@ class Shared { public: Shared() - :queue(true) + :queue(true, true) { db = new BaseDB; } -- 2.7.4