(
&mut self,
senders: &Senders,
worker_id: WorkerId,
running_tasks: &[TaskId],
reason: LostWorkerReason,
)
| 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() |
no test coverage detected