diff options
author | Antoine A <> | 2024-03-20 18:03:20 +0100 |
---|---|---|
committer | Antoine A <> | 2024-03-20 18:03:20 +0100 |
commit | a047fb5c1076c0afe2c04c8beb2edd6026f595b3 (patch) | |
tree | b874694a0858f4fe6a0a8fe43557080ef407de8d /bank/src/main/kotlin/tech/libeufin/bank/Main.kt | |
parent | 97963f2b5c5fc520705a5f2f6283d6483b7585d3 (diff) | |
download | libeufin-a047fb5c1076c0afe2c04c8beb2edd6026f595b3.tar.gz libeufin-a047fb5c1076c0afe2c04c8beb2edd6026f595b3.tar.bz2 libeufin-a047fb5c1076c0afe2c04c8beb2edd6026f595b3.zip |
Add GC command
Diffstat (limited to 'bank/src/main/kotlin/tech/libeufin/bank/Main.kt')
-rw-r--r-- | bank/src/main/kotlin/tech/libeufin/bank/Main.kt | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/bank/src/main/kotlin/tech/libeufin/bank/Main.kt b/bank/src/main/kotlin/tech/libeufin/bank/Main.kt index ecdc5810..0663e49e 100644 --- a/bank/src/main/kotlin/tech/libeufin/bank/Main.kt +++ b/bank/src/main/kotlin/tech/libeufin/bank/Main.kt @@ -58,6 +58,7 @@ import java.net.InetAddress import java.sql.SQLException import java.util.zip.DataFormatException import java.util.zip.Inflater +import java.time.Instant import kotlin.io.path.Path import kotlin.io.path.exists import kotlin.io.path.readText @@ -505,10 +506,28 @@ class CreateAccount : CliktCommand( } } +class GC : CliktCommand( + "Run garbage collection: abort expired operations and clean expired data", + name = "gc" +) { + private val common by CommonOption() + + override fun run() = cliCmd(logger, common.log) { + val cfg = talerConfig(common.config) + val ctx = cfg.loadBankConfig() + val dbCfg = cfg.loadDbConfig() + + Database(dbCfg.dbConnStr, ctx.regionalCurrency, ctx.fiatCurrency).use { db -> + logger.info("Run garbage collection") + db.gc.collect(Instant.now(), ctx.gcAbortAfter, ctx.gcCleanAfter, ctx.gcDeleteAfter) + } + } +} + class LibeufinBankCommand : CliktCommand() { init { versionOption(getVersion()) - subcommands(ServeBank(), BankDbInit(), CreateAccount(), EditAccount(), ChangePw(), CliConfigCmd(BANK_CONFIG_SOURCE)) + subcommands(ServeBank(), BankDbInit(), CreateAccount(), EditAccount(), ChangePw(), GC(), CliConfigCmd(BANK_CONFIG_SOURCE)) } override fun run() = Unit |