This commit is contained in:
Mubelotix
2025-08-08 13:06:48 +02:00
parent eb8ff31513
commit 4c61d3a939

View File

@ -19,7 +19,7 @@ use crate::processing::{
UpdateIndexProgress,
};
use crate::utils::{
self, remove_n_tasks_datetime_earlier_than, remove_task_datetime, swap_index_uid_in_task,
remove_n_tasks_datetime_earlier_than, remove_task_datetime, swap_index_uid_in_task,
ProcessingBatch,
};
use crate::{Error, IndexScheduler, Result, TaskId};
@ -566,17 +566,18 @@ impl IndexScheduler {
let mut enqueued_to_remove: HashMap<i128, RoaringBitmap> = HashMap::new();
let mut started_to_remove: HashMap<i128, RoaringBitmap> = HashMap::new();
let mut finished_to_remove: HashMap<i128, RoaringBitmap> = HashMap::new();
for task_id in to_delete_tasks.iter() {
let task =
self.queue.tasks.get_task(wtxn, task_id)?.ok_or(Error::CorruptedTaskQueue)?;
for range in consecutive_ranges(to_delete_tasks.iter()) {
let iter = self
.queue
.tasks
.all_tasks
.range(wtxn, &(Bound::Included(range.0), Bound::Included(range.1)))?;
for task in iter {
let (task_id, task) = task?;
affected_indexes.extend(task.indexes().into_iter().map(|x| x.to_owned()));
affected_statuses.insert(task.status);
affected_kinds.insert(task.kind.as_kind());
// Note: don't delete the persisted task data since
// we can only delete succeeded, failed, and canceled tasks.
// In each of those cases, the persisted data is supposed to
// have been deleted already.
let enqueued_at = task.enqueued_at.unix_timestamp_nanos();
if enqueued_at < min_enqueued {
@ -617,6 +618,12 @@ impl IndexScheduler {
}
atomic_progress.fetch_add(1, Ordering::Relaxed);
}
}
// Note: don't delete the persisted task data since
// we can only delete succeeded, failed, and canceled tasks.
// In each of those cases, the persisted data is supposed to
// have been deleted already.
progress.update_progress(TaskDeletionProgress::DeletingTasksDateTime);
for (mut to_remove, db) in [