From c7492ee35ed1da7cb7d4aded63f95877c0428541 Mon Sep 17 00:00:00 2001 From: Steven <1477010+stnguyen90@users.noreply.github.com> Date: Wed, 19 Jul 2023 01:32:11 +0000 Subject: [PATCH] Fix a bug where the delete worker wasn't iterating over schedules --- app/workers/deletes.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/app/workers/deletes.php b/app/workers/deletes.php index 1e31fc270f..3efe9910a5 100644 --- a/app/workers/deletes.php +++ b/app/workers/deletes.php @@ -679,16 +679,26 @@ class DeletesV1 extends Worker $limit = 50; $results = []; $sum = $limit; + $cursor = null; $executionStart = \microtime(true); while ($sum === $limit) { $chunk++; - $results = $database->find($collection, \array_merge([Query::limit($limit)], $queries)); + $mergedQueries = \array_merge([Query::limit($limit)], $queries); + if ($cursor instanceof Document) { + $mergedQueries[] = Query::cursorAfter($cursor); + } + + $results = $database->find($collection, $mergedQueries); $sum = count($results); + if ($sum > 0) { + $cursor = $results[$sum - 1]; + } + foreach ($results as $document) { if (is_callable($callback)) { $callback($document);