MCPcopy Create free account
hub / github.com/It4innovations/hyperqueue / process_worker_lost

Method process_worker_lost

crates/hyperqueue/src/server/state.rs:198–223  ·  view source on GitHub ↗
(
        &mut self,
        senders: &Senders,
        worker_id: WorkerId,
        running_tasks: &[TaskId],
        reason: LostWorkerReason,
    )

Source from the content-addressed store, hash-verified

196 }
197
198 pub fn process_worker_lost(
199 &mut self,
200 senders: &Senders,
201 worker_id: WorkerId,
202 running_tasks: &[TaskId],
203 reason: LostWorkerReason,
204 ) {
205 log::debug!("Worker lost id={worker_id}");
206 for tako_id in running_tasks {
207 let job = self.get_job_mut(tako_id.job_id()).unwrap();
208 job.set_waiting_state(tako_id.job_task_id());
209 }
210
211 let worker = self.workers.get_mut(&worker_id).unwrap();
212 worker.set_offline_state(reason);
213
214 senders.autoalloc.on_worker_lost(
215 worker_id,
216 &worker.configuration,
217 LostWorkerDetails {
218 reason,
219 lifetime: (Utc::now() - worker.started_at()).to_std().unwrap(),
220 },
221 );
222 senders.events.on_worker_lost(worker_id, reason);
223 }
224
225 pub(crate) fn restore_state(&mut self, restorer: &StateRestorer) {
226 self.job_id_counter = restorer.job_id_counter()

Callers 1

on_worker_lostMethod · 0.80

Calls 9

job_idMethod · 0.80
set_waiting_stateMethod · 0.80
job_task_idMethod · 0.80
set_offline_stateMethod · 0.80
started_atMethod · 0.80
nowFunction · 0.50
get_job_mutMethod · 0.45
get_mutMethod · 0.45
on_worker_lostMethod · 0.45

Tested by

no test coverage detected