mirror of
https://github.com/storytold/artcraft.git
synced 2026-11-04 01:18:34 +00:00
batching
This commit is contained in:
1 parent
f90926c6f0
commit
eeddeb37e6
3 files changed
+31
-1
No files matched your search
@@ -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;
|
||||
|
||||
@@ -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(),
|
||||
};
|
||||
|
||||
|
||||
Reference in new issue
Block a user