Stop polling when a job reached terminal status

Signed-off-by: Lee Smet <lee.smet@hotmail.com>
This commit is contained in:
Lee Smet
2025-09-08 12:07:26 +02:00
parent 78a776877a
commit c860553acd

View File

@@ -405,7 +405,7 @@ async fn deliver_one(
)], )],
) )
.await; .await;
// If result is still empty, immediately request supervisor job.result // If result is still empty, immediately request supervisor job.result
if job.result.is_empty() { if job.result.is_empty() {
let sup = cache let sup = cache
@@ -566,6 +566,28 @@ async fn deliver_one(
) )
.await; .await;
} }
// Mark processed and stop polling for this message
let _ = service_poll
.update_message_status(
context_id,
caller_id,
id,
MessageStatus::Processed,
)
.await;
let _ = service_poll
.append_message_logs(
context_id,
caller_id,
id,
vec![format!(
"Terminal job {} detected; stopping transport polling",
job_id
)],
)
.await;
break;
} }
// Not terminal yet -> request supervisor job.status as before // Not terminal yet -> request supervisor job.status as before
_ => { _ => {
@@ -673,6 +695,28 @@ async fn deliver_one(
}); });
} }
} }
// Mark processed and stop polling for this message
let _ = service_poll
.update_message_status(
context_id,
caller_id,
id,
MessageStatus::Processed,
)
.await;
let _ = service_poll
.append_message_logs(
context_id,
caller_id,
id,
vec![format!(
"Terminal job {} detected from supervisor status; stopping transport polling",
job_id
)],
)
.await;
break;
} }
} }
} }