diff --git a/src/howl.rs b/src/howl.rs index 3d6ad62..bfdb1df 100644 --- a/src/howl.rs +++ b/src/howl.rs @@ -147,17 +147,17 @@ fn produce_messages( } } + let ev44 = generate_fake_events(fbb, rng, frame, conf.event_message_config, now_nanos).to_vec(); + for _ in 0..conf.messages_per_frame { match producer.send( BaseRecord::to(conf.event_topic) .key("") - .payload(generate_fake_events( - fbb, - rng, - frame, - conf.event_message_config, - now_nanos, - )) + .payload(if conf.fast { + ev44.as_slice() + } else { + generate_fake_events(fbb, rng, frame, conf.event_message_config, now_nanos) + }) .timestamp(now_nanos / 1_000_000), ) { Ok(_) => {} @@ -273,6 +273,7 @@ pub struct HowlConfig<'a> { pub frames_per_run: u32, pub veto_probability: f64, // 1 = always vetoed, 0 = never vetoed pub event_message_config: &'a EventMessageConfig, + pub fast: bool, pub kafka_config: Option>, } diff --git a/src/main.rs b/src/main.rs index fa13210..0ac9c45 100644 --- a/src/main.rs +++ b/src/main.rs @@ -98,6 +98,9 @@ enum Commands { /// Veto probability (0 = never vetoed; 1 = always vetoed) #[arg(long, default_value = "0.0")] veto_probability: f64, + /// Enable howl fast mode (Disables randomised ev44 blob generation) + #[arg(long, action=clap::ArgAction::SetTrue)] + fast: bool, // Additonal command line arguments #[arg(short = 'X', long)] kafka_config: Option>, @@ -164,6 +167,7 @@ async fn main() { det_min, det_max, veto_probability, + fast, kafka_config, } => howl(&HowlConfig { kafka_config, @@ -181,6 +185,7 @@ async fn main() { det_max, }, veto_probability, + fast, }), Commands::Count { topic,