From 91531f6baa63fff883551d00aae3cd9c42283c94 Mon Sep 17 00:00:00 2001 From: Fred Gleason Date: Tue, 16 May 2023 17:24:34 -0400 Subject: [PATCH] 2023-05-16 Fred Gleason * Refactored rdrssd(8) to process feeds at two seconds after each minute. Signed-off-by: Fred Gleason --- ChangeLog | 3 +++ rdrssd/rdrssd.cpp | 27 +++++++++++++-------------- rdrssd/rdrssd.h | 5 ++--- 3 files changed, 18 insertions(+), 17 deletions(-) diff --git a/ChangeLog b/ChangeLog index d1d600c8..d6d00633 100644 --- a/ChangeLog +++ b/ChangeLog @@ -24105,3 +24105,6 @@ values on the 'Editing Item' dialog in rdcastmanager(1). 2023-05-16 Fred Gleason * Added a usage note to 'apis/cdn/scripts/akamai_purge.cdn'. +2023-05-16 Fred Gleason + * Refactored rdrssd(8) to process feeds at two seconds after each + minute. diff --git a/rdrssd/rdrssd.cpp b/rdrssd/rdrssd.cpp index eb57590c..1616d0e8 100644 --- a/rdrssd/rdrssd.cpp +++ b/rdrssd/rdrssd.cpp @@ -34,11 +34,8 @@ MainObject::MainObject(QObject *parent) : QObject(parent) { QString err_msg; - bool ok=false; RDApplication::ErrorType err_type=RDApplication::ErrorOk; - d_process_interval=RDRSSD_DEFAULT_PROCESS_INTERVAL; - // // Open the Database // @@ -68,15 +65,6 @@ MainObject::MainObject(QObject *parent) // Read Command Options // for(unsigned i=0;icmdSwitch()->keys();i++) { - if(rda->cmdSwitch()->key(i)=="--process-interval") { - d_process_interval=1000*rda->cmdSwitch()->value(i).toInt(&ok); - if((!ok)||(d_process_interval<=0)) { - fprintf(stderr, - "rdrssd: invalid value specified for --process-interval\n"); - exit(1); - } - rda->cmdSwitch()->setProcessed(i,true); - } if(!rda->cmdSwitch()->processed(i)) { rda->syslog(LOG_ERR,"unknown command option \"%s\"", (const char *)rda->cmdSwitch()->key(i).toUtf8()); @@ -96,7 +84,8 @@ MainObject::MainObject(QObject *parent) d_timer=new QTimer(this); d_timer->setSingleShot(true); connect(d_timer,SIGNAL(timeout()),this,SLOT(timeoutData())); - d_timer->start(0); + + StartTimer(); rda->syslog(LOG_DEBUG,"started"); } @@ -117,7 +106,17 @@ void MainObject::timeoutData() } delete q; - d_timer->start(d_process_interval); + StartTimer(); +} + + +void MainObject::StartTimer() +{ + QDateTime now=QDateTime::currentDateTime(); + QDateTime then=now.addSecs(60); + + then.setTime(QTime(then.time().hour(),then.time().minute(),2)); + d_timer->start(now.msecsTo(then)); } diff --git a/rdrssd/rdrssd.h b/rdrssd/rdrssd.h index b603fa14..929518fb 100644 --- a/rdrssd/rdrssd.h +++ b/rdrssd/rdrssd.h @@ -24,8 +24,7 @@ #include #include -#define RDRSSD_DEFAULT_PROCESS_INTERVAL 60000 -#define RDRSSD_USAGE "[--process-interval=]\n\n" +#define RDRSSD_USAGE "\n" class MainObject : public QObject { @@ -37,8 +36,8 @@ class MainObject : public QObject void timeoutData(); private: + void StartTimer(); void ProcessFeed(const QString &key_name); - int d_process_interval; QTimer *d_timer; };