From b105deef32daf8b754e3f65a861bb8399f4cbc1d Mon Sep 17 00:00:00 2001 From: Kevron Rees Date: Wed, 14 Jan 2015 15:03:09 -0800 Subject: 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 b18ca2c6..57d57073 100644 --- a/plugins/database/databasesink.cpp +++ b/plugins/database/databasesink.cpp @@ -30,10 +30,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 ) @@ -47,7 +47,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); @@ -61,8 +61,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 459ec928..a382043a 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; } -- cgit v1.2.1