Skip to content

Commit 923a32e

Browse files
author
palPalani
committed
Use SqsClient for delete bulk message
1 parent eeabfef commit 923a32e

File tree

1 file changed

+27
-8
lines changed

1 file changed

+27
-8
lines changed

src/SqsQueueReaderServiceProvider.php

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
use Illuminate\Support\Facades\Queue;
99
use Illuminate\Support\ServiceProvider;
1010
use palPalani\SqsQueueReader\Sqs\Connector;
11+
use Aws\Sqs\SqsClient;
12+
use Aws\Exception\AwsException;
1113

1214
class SqsQueueReaderServiceProvider extends ServiceProvider
1315
{
@@ -40,23 +42,40 @@ public function boot(): void
4042
$batchIds = array_chunk($batchIds, 10);
4143
Log::debug('Job array_chunk==', [$batchIds]);
4244

45+
$client = new SqsClient([
46+
//'profile' => 'default',
47+
'region' => Config::get('queue.connections.sqs-json.region'),
48+
'version' => '2012-11-05'
49+
]);
50+
4351
foreach ($batchIds as $batch) {
4452
//Deletes up to ten messages from the specified queue.
53+
/*
4554
$result = $event->job->deleteMessageBatch([
4655
'Entries' => $batch,
4756
'QueueUrl' => $queue,
4857
]);
58+
*/
4959

50-
if (isset($result['Failed'])) {
51-
$msg = '';
52-
foreach ($result['Failed'] as $failed) {
53-
$msg .= sprintf("Deleting message failed, code = %s, id = %s, msg = %s, senderfault = %s", $failed['Code'], $failed['Id'], $failed['Message'], $failed['SenderFault']);
54-
}
55-
Log::error('Cannot delete some SQS messages: ', [$msg]);
60+
try {
61+
$result = $client->deleteMessageBatch([
62+
'Entries' => $batch,
63+
'QueueUrl' => $queue,
64+
]);
5665

57-
throw new \RuntimeException("Cannot delete some messages, consult log for more info!");
66+
if (isset($result['Failed'])) {
67+
$msg = '';
68+
foreach ($result['Failed'] as $failed) {
69+
$msg .= sprintf("Deleting message failed, code = %s, id = %s, msg = %s, senderfault = %s", $failed['Code'], $failed['Id'], $failed['Message'], $failed['SenderFault']);
70+
}
71+
Log::error('Cannot delete some SQS messages: ', [$msg]);
72+
73+
throw new \RuntimeException("Cannot delete some messages, consult log for more info!");
74+
}
75+
Log::info('Message remove report:', [$result]);
76+
} catch (AwsException $e) {
77+
Log::error('AWS SQS client error:', [$e->getMessage()]);
5878
}
59-
Log::info('Message remove report:', [$result]);
6079
}
6180
}
6281
}

0 commit comments

Comments
 (0)