Skip to content

Commit af34b64

Browse files
authored
Merge pull request #5 from level23/feature-delete-correct-jobs
Filter out jobs that are already deleted or released
2 parents 039d2b5 + c175d8a commit af34b64

File tree

1 file changed

+19
-12
lines changed

1 file changed

+19
-12
lines changed

src/Queue/Jobs/BatchJob.php

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -42,20 +42,27 @@ public function attempts()
4242
*/
4343
public function delete()
4444
{
45-
$entries = collect($this->jobs)->transform(function(SqsJob $job) {
46-
return [
47-
'Id' => $job->getJobId(),
48-
'ReceiptHandle' => $job->getReceiptHandle()
49-
];
50-
});
45+
$entries = collect($this->jobs)
46+
->filter(function(SqsJob $job) {
47+
return !$job->isDeletedOrReleased();
48+
})
49+
->transform(function(SqsJob $job) {
50+
return [
51+
'Id' => $job->getJobId(),
52+
'ReceiptHandle' => $job->getReceiptHandle()
53+
];
54+
});
5155

52-
$response = $this->sqs->deleteMessageBatch([
53-
'QueueUrl' => $this->queue,
54-
'Entries' => $entries->values()->toArray(),
55-
]);
56+
if($entries->isNotEmpty()) {
5657

57-
foreach ($response['Successful'] as $message) {
58-
$this->jobs[$message['Id']]->setDeleted();
58+
$response = $this->sqs->deleteMessageBatch([
59+
'QueueUrl' => $this->queue,
60+
'Entries' => $entries->values()->toArray(),
61+
]);
62+
63+
foreach ($response['Successful'] as $message) {
64+
$this->jobs[$message['Id']]->setDeleted();
65+
}
5966
}
6067

6168
$this->deleted = true;

0 commit comments

Comments
 (0)