Skip to content

Commit 4976d8b

Browse files
Fix handling of retried jobs in tests
GitOrigin-RevId: 4ac6c1e85b2ec09f2eededabe706a6d78687c07c
1 parent 01f92ae commit 4976d8b

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

misk-jobqueue/src/testFixtures/kotlin/misk/jobqueue/v2/FakeJobEnqueuer.kt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,10 @@ class FakeJobEnqueuer @Inject constructor(
215215
JobStatus.OK -> job.acknowledged = true
216216
JobStatus.DEAD_LETTER -> job.deadLettered = true
217217
JobStatus.RETRY_LATER -> job.acknowledged = false
218-
JobStatus.RETRY_WITH_BACKOFF -> job.acknowledged = false
218+
JobStatus.RETRY_WITH_BACKOFF -> {
219+
job.acknowledged = false
220+
job.delayedForBackoff = true
221+
}
219222
}
220223
}
221224
}
@@ -239,8 +242,10 @@ class FakeJobEnqueuer @Inject constructor(
239242

240243
// Re-enqueue deadlettered jobs outside of the main loop to prevent an infinite loop.
241244
resultedJobs.forEach { job ->
242-
if (job.deadLettered || !job.acknowledged) {
245+
if (job.deadLettered) {
243246
deadletteredJobs.getOrPut(job.queueName, ::ConcurrentLinkedDeque).add(job)
247+
} else if (!job.acknowledged) {
248+
jobQueues.getOrPut(job.queueName, ::PriorityBlockingQueue).add(job)
244249
}
245250
}
246251
// Similarly to above re-enqueue jobs that have been called to have the visibility timeout.

0 commit comments

Comments
 (0)