diff --git a/src/async_runner.rs b/src/async_runner.rs index 09b2278..5ea35a8 100644 --- a/src/async_runner.rs +++ b/src/async_runner.rs @@ -1,6 +1,6 @@ use crate::job::Job; use log::{debug, error, info}; -use rhai::Engine; +use rhai::{Engine, packages::Package}; use std::collections::HashMap; use std::sync::Arc; use std::time::Duration; @@ -167,7 +167,7 @@ impl Runner for AsyncRunner { // Spawn the job execution task let job_handle = tokio::spawn(async move { - // Create a new engine instance for this job + // Create a new engine instance (cheap with factory pattern) let mut engine = engine_factory(); let mut db_config = rhai::Map::new(); db_config.insert("DB_PATH".into(), db_path_clone.into()); @@ -252,7 +252,7 @@ pub fn spawn_async_runner( engine_factory: F, ) -> JoinHandle>> where - F: Fn() -> Engine + Send + Sync + 'static, + F: Fn() -> Engine + Send + Sync + 'static, { use std::sync::Arc; diff --git a/src/script_mode.rs b/src/script_mode.rs index ff390f1..076c172 100644 --- a/src/script_mode.rs +++ b/src/script_mode.rs @@ -15,7 +15,7 @@ pub async fn execute_script_mode( redis_url: String, job_timeout: Duration, engine_factory: F, -) -> Result> +) -> Result> where F: Fn() -> rhai::Engine + Send + Sync + 'static, { diff --git a/src/sync_runner.rs b/src/sync_runner.rs index 885f56c..214f45f 100644 --- a/src/sync_runner.rs +++ b/src/sync_runner.rs @@ -1,9 +1,8 @@ use crate::job::Job; -use log::{debug, error, info}; -use rhai::{Dynamic, Engine}; -use std::sync::Arc; - use crate::runner_trait::Runner; +use log::{debug, error, info}; +use rhai::{Engine, Dynamic}; +use std::sync::Arc; /// Configuration for sync runner instances #[derive(Debug, Clone)] @@ -73,7 +72,7 @@ impl Runner for SyncRunner { debug!("Sync Runner '{}', Job {}: Processing started.", runner_id, job_id); info!("Sync Runner '{}' processing job_id: {}. Script: {:.50}...", job.context_id, job_id, job.payload); - // Create a new engine instance for this job execution + // Create a new engine instance (cheap with factory pattern) let mut engine = (self.engine_factory)(); // Execute the script