gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[libeufin] branch master updated: nexus submit: defaulting --transient t


From: gnunet
Subject: [libeufin] branch master updated: nexus submit: defaulting --transient to false.
Date: Thu, 02 Nov 2023 09:44:01 +0100

This is an automated email from the git hooks/post-receive script.

ms pushed a commit to branch master
in repository libeufin.

The following commit(s) were added to refs/heads/master by this push:
     new 1b2dc8e3 nexus submit: defaulting --transient to false.
1b2dc8e3 is described below

commit 1b2dc8e3fbffc20e1920fcc0250405d820a69d99
Author: MS <ms@taler.net>
AuthorDate: Thu Nov 2 09:43:12 2023 +0100

    nexus submit: defaulting --transient to false.
---
 contrib/libeufin-nexus.conf                        |  4 ++--
 .../main/kotlin/tech/libeufin/nexus/EbicsSubmit.kt | 25 ++++++++++++++--------
 2 files changed, 18 insertions(+), 11 deletions(-)

diff --git a/contrib/libeufin-nexus.conf b/contrib/libeufin-nexus.conf
index edde63e5..9a9822eb 100644
--- a/contrib/libeufin-nexus.conf
+++ b/contrib/libeufin-nexus.conf
@@ -42,11 +42,11 @@ CONFIG = postgres:///libeufin-nexus
 [libeufin-nexusdb-postgres]
 SQL_DIR = $DATADIR/sql/
 
-[nexus-ebics-fetch]
+[nexus-fetch]
 FREQUENCY = 30s # used when long-polling is not supported
 STATEMENT_LOG_DIRECTORY = /tmp/ebics-messages/
 
-[nexus-ebics-submit]
+[nexus-submit]
 FREQUENCY = 30s # use 0 to always submit immediately (via LISTEN trigger)
 
 [nexus-httpd]
diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/EbicsSubmit.kt 
b/nexus/src/main/kotlin/tech/libeufin/nexus/EbicsSubmit.kt
index 5fe65320..948ee4e6 100644
--- a/nexus/src/main/kotlin/tech/libeufin/nexus/EbicsSubmit.kt
+++ b/nexus/src/main/kotlin/tech/libeufin/nexus/EbicsSubmit.kt
@@ -26,6 +26,7 @@ import io.ktor.client.*
 import kotlinx.coroutines.runBlocking
 import tech.libeufin.nexus.ebics.submitPayment
 import tech.libeufin.util.parsePayto
+import java.time.Instant
 import java.util.*
 import kotlin.concurrent.fixedRateTimer
 import kotlin.system.exitProcess
@@ -124,7 +125,7 @@ fun getFrequencyInSeconds(humanFormat: String): Int? {
 fun checkFrequency(foundInConfig: String): Int {
     val frequencySeconds = getFrequencyInSeconds(foundInConfig)
     if (frequencySeconds == null) {
-        throw Exception("Invalid frequency value in config section 
nexus-ebics-submit: $foundInConfig")
+        throw Exception("Invalid frequency value in config section 
nexus-submit: $foundInConfig")
     }
     if (frequencySeconds < 0) {
         throw Exception("Configuration error: cannot operate with a negative 
submit frequency ($foundInConfig)")
@@ -139,6 +140,7 @@ private fun submitBatch(
     clientKeys: ClientPrivateKeysFile,
     bankKeys: BankPublicKeysFile
 ) {
+    logger.debug("Running submit at: ${Instant.now()}")
     runBlocking {
         db.initiatedPaymentsUnsubmittedGet(cfg.currency).forEach {
             logger.debug("Submitting payment initiation with row ID: 
${it.key}")
@@ -164,7 +166,10 @@ private fun submitBatch(
         }
     }
 }
-
+data class SubmitFrequency(
+    val inSeconds: Int,
+    val fromConfig: String
+)
 class EbicsSubmit : CliktCommand("Submits any initiated payment found in the 
database") {
     private val configFile by option(
         "--config", "-c",
@@ -173,8 +178,8 @@ class EbicsSubmit : CliktCommand("Submits any initiated 
payment found in the dat
     private val transient by option(
         "--transient",
         help = "This flag submits what is found in the database and returns, " 
+
-                "ignoring the 'frequency' value found in the configuration"
-    ).flag(default = true)
+                "ignoring the 'frequency' configuration value"
+    ).flag(default = false)
 
     /**
      * Submits any initiated payment that was not submitted
@@ -183,9 +188,10 @@ class EbicsSubmit : CliktCommand("Submits any initiated 
payment found in the dat
      */
     override fun run() {
         val cfg: EbicsSetupConfig = doOrFail { extractEbicsConfig(configFile) }
-        val frequency: Int = doOrFail {
+        val frequency: SubmitFrequency = doOrFail {
             val configValue = cfg.config.requireString("nexus-submit", 
"frequency")
-            return@doOrFail checkFrequency(configValue)
+            val frequencySeconds = checkFrequency(configValue)
+            return@doOrFail SubmitFrequency(frequencySeconds, configValue)
         }
         val dbCfg = cfg.config.extractDbConfigOrFail()
         val db = Database(dbCfg.dbConnStr)
@@ -205,14 +211,15 @@ class EbicsSubmit : CliktCommand("Submits any initiated 
payment found in the dat
             submitBatch(cfg, db, httpClient, clientKeys, bankKeys)
             return
         }
-        if (frequency == 0) {
-            logger.warn("Long-polling not implemented, submitting what is 
found and exit")
+        logger.debug("Running with a frequency of ${frequency.fromConfig}")
+        if (frequency.inSeconds == 0) {
+            logger.warn("Long-polling not implemented, running therefore in 
transient mode")
             submitBatch(cfg, db, httpClient, clientKeys, bankKeys)
             return
         }
         fixedRateTimer(
             name = "ebics submit period",
-            period = (frequency * 1000).toLong(),
+            period = (frequency.inSeconds * 1000).toLong(),
             action = {
                 submitBatch(cfg, db, httpClient, clientKeys, bankKeys)
             }

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]