diff options
author | Matthias Beyer <matthias.beyer@atos.net> | 2021-04-23 12:51:57 +0200 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2021-04-26 14:46:22 +0200 |
commit | 1ebfa387fa5d47e3200b990f63f55bbe36adeff1 (patch) | |
tree | 52496b7406e2b90150358e0ad247e769e3f3b702 /src/db | |
parent | 155b9001a2db30588acf148f9c755f4b187e8e3a (diff) |
Add support for database connection timeout
This patch adds support for a database connection timeout, giving the user the
option to configure one, but hardcoding a default timeout to 30 seconds.
Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
Diffstat (limited to 'src/db')
-rw-r--r-- | src/db/connection.rs | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/db/connection.rs b/src/db/connection.rs index 33de9e7..fb18e32 100644 --- a/src/db/connection.rs +++ b/src/db/connection.rs @@ -34,17 +34,21 @@ pub struct DbConnectionConfig { #[getset(get = "pub")] database_name: String, + + #[getset(get = "pub")] + database_connection_timeout: String, } impl Into<String> for DbConnectionConfig { fn into(self) -> String { format!( - "postgres://{user}:{password}@{host}:{port}/{name}", + "postgres://{user}:{password}@{host}:{port}/{name}?connect_timeout={timeout}", host = self.database_host, port = self.database_port, user = self.database_user, password = self.database_password, - name = self.database_name + name = self.database_name, + timeout = self.database_connection_timeout, ) } } @@ -66,6 +70,11 @@ pub fn parse_db_connection_config(config: &Configuration, cli: &ArgMatches) -> D config.database_password().to_string() }); let database_name = find_value(cli, "database_name", || config.database_name().to_string()); + let database_connection_timeout = find_value(cli, "database_connection_timeout", + || { + // hardcoded default of 30 seconds database timeout + config.database_connection_timeout().unwrap_or(30).to_string() + }); DbConnectionConfig { database_host, @@ -73,6 +82,7 @@ pub fn parse_db_connection_config(config: &Configuration, cli: &ArgMatches) -> D database_user, database_password, database_name, + database_connection_timeout, } } |