This commit is contained in:
Brandon Thomas committed 2026-03-24 17:18:08 -04:00
1 parent f90926c6f0
commit eeddeb37e6
3 files changed
+31 -1

No files matched your search

+1
View File
@@ -46,6 +46,7 @@ pub use types::duration::get_env_duration_seconds_optional;
pub use types::duration::get_env_duration_seconds_or_default;
pub use types::duration::get_env_duration_seconds_required;
pub use types::num::get_env_num;
pub use types::num::try_get_env_num_optional;
pub use types::pathbuf::get_env_pathbuf_optional;
pub use types::pathbuf::get_env_pathbuf_or_default;
pub use types::pathbuf::get_env_pathbuf_required;
+23
View File
@@ -26,3 +26,26 @@ pub fn get_env_num<T>(env_name: &str, default: T) -> Result<T, EnvError>
},
}
}
/// Get an environment variable as an optional number.
/// Returns `Ok(None)` if the env var is not set.
/// Returns `Err` if the env var is set but can't be parsed.
pub fn try_get_env_num_optional<T>(env_name: &str) -> Result<Option<T>, EnvError>
where T: FromStr,
T::Err: Debug
{
match env::var(env_name).as_ref().ok() {
None => {
warn!("Env var '{}' not supplied.", env_name);
Ok(None)
},
Some(val) => {
val.parse::<T>()
.map(Some)
.map_err(|e| {
error!("Can't parse env var '{}' value '{:?}'. Error: {:?}", env_name, val, e);
EnvError::ParseError { reason: format!("Can't parse value: {:?}", e) }
})
},
}
}
@@ -107,6 +107,12 @@ async fn main() -> AnyhowResult<()> {
5_000,
)?;
let maybe_pages_per_batch: Option<u32> = easyenv::try_get_env_num_optional("BATCH_PAGE_COUNT")?;
if let Some(count) = maybe_pages_per_batch {
info!("Batch page count: {}", count);
}
let application_shutdown = RelaxedAtomicBool::new(false);
let job_stats = JobStats::new();
@@ -122,7 +128,7 @@ async fn main() -> AnyhowResult<()> {
server_environment,
job_stats,
poll_interval_millis,
maybe_pages_per_batch: None, // TODO: Make configurable via env var if needed.
maybe_pages_per_batch,
application_shutdown: application_shutdown.clone(),
};