Updates
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
use hero_job::{Job, JobStatus};
|
||||
use hero_job::{Job, JobStatus, ScriptType};
|
||||
use hero_job::keys;
|
||||
use log::{debug, error, info};
|
||||
use redis::AsyncCommands;
|
||||
use rhai::{Dynamic, Engine};
|
||||
@@ -217,10 +218,11 @@ pub fn spawn_rhai_actor(
|
||||
preserve_tasks: bool,
|
||||
) -> JoinHandle<Result<(), Box<dyn std::error::Error + Send + Sync>>> {
|
||||
tokio::spawn(async move {
|
||||
let queue_key = format!("{}{}", NAMESPACE_PREFIX, actor_id);
|
||||
let script_type = derive_script_type_from_actor_id(&actor_id);
|
||||
let queue_key = keys::work_type(&script_type);
|
||||
info!(
|
||||
"Rhai Actor for Actor ID '{}' starting. Connecting to Redis at {}. Listening on queue: {}. Waiting for tasks or shutdown signal.",
|
||||
actor_id, redis_url, queue_key
|
||||
"Rhai Actor '{}' starting. Type {:?}. Connecting to Redis at {}. Listening on queue: {}. Waiting for tasks or shutdown signal.",
|
||||
actor_id, script_type, redis_url, queue_key
|
||||
);
|
||||
|
||||
let mut redis_conn = initialize_redis_connection(&actor_id, &redis_url).await?;
|
||||
@@ -259,6 +261,23 @@ pub fn spawn_rhai_actor(
|
||||
})
|
||||
}
|
||||
|
||||
// Helper to derive script type from actor_id for canonical queue selection
|
||||
fn derive_script_type_from_actor_id(actor_id: &str) -> ScriptType {
|
||||
let lower = actor_id.to_lowercase();
|
||||
if lower.contains("sal") {
|
||||
ScriptType::SAL
|
||||
} else if lower.contains("osis") {
|
||||
ScriptType::OSIS
|
||||
} else if lower.contains("python") {
|
||||
ScriptType::Python
|
||||
} else if lower == "v" || lower.contains(":v") || lower.contains(" v") {
|
||||
ScriptType::V
|
||||
} else {
|
||||
// Default to OSIS when uncertain
|
||||
ScriptType::OSIS
|
||||
}
|
||||
}
|
||||
|
||||
// Re-export the main trait-based interface for convenience
|
||||
pub use actor_trait::{Actor, ActorConfig, spawn_actor};
|
||||
|
||||
|
Reference in New Issue
Block a user