Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengelola batas waktu visibilitas di Amazon AWS SDK for PHP SQS dengan Versi 3
Batas waktu visibilitas adalah periode waktu di mana Amazon SQS mencegah komponen konsumsi lainnya menerima dan memproses pesan. Untuk mempelajari lebih lanjut, lihat Batas Waktu Visibilitas.
Contoh berikut menunjukkan cara:
-
Ubah batas waktu visibilitas pesan tertentu dalam antrian ke nilai baru, menggunakan. ChangeMessageVisibilityBatch
Semua kode contoh untuk AWS SDK for PHP tersedia di sini GitHub
Kredensial
Sebelum menjalankan kode contoh, konfigurasikan AWS kredenal Anda, seperti yang dijelaskan dalam. Kredensial Kemudian imporAWS SDK for PHP, seperti yang dijelaskan dalamPenggunaan dasar.
Mengubah batas waktu visibilitas beberapa pesan
Impor
require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Sqs\SqsClient;
Kode Sampel
$queueUrl = "QUEUE_URL"; $client = new SqsClient([ 'profile' => 'default', 'region' => 'us-west-2', 'version' => '2012-11-05' ]); try { $result = $client->receiveMessage(array( 'AttributeNames' => ['SentTimestamp'], 'MaxNumberOfMessages' => 10, 'MessageAttributeNames' => ['All'], 'QueueUrl' => $queueUrl, // REQUIRED )); $messages = $result->get('Messages'); if ($messages != null) { $entries = array(); for ($i = 0; $i < count($messages); $i++) { $entries[] = [ 'Id' => 'unique_is_msg' . $i, // REQUIRED 'ReceiptHandle' => $messages[$i]['ReceiptHandle'], // REQUIRED 'VisibilityTimeout' => 3600 ]; } $result = $client->changeMessageVisibilityBatch([ 'Entries' => $entries, 'QueueUrl' => $queueUrl ]); var_dump($result); } else { echo "No messages in queue \n"; } } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }