Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengirim dan menerima pesan di Amazon SQS dengan AWS SDK for PHP Versi 3
Untuk mempelajari tentang pesan Amazon SQS, lihat Mengirim Pesan ke Antrian SQS dan Menerima serta Menghapus Pesan dari Antrian SQS di Panduan Pengguna Service Quotas.
Contoh berikut menunjukkan cara:
-
Mengirimkan pesan ke antrian tertentu menggunakan SendMessage.
-
Ambil satu atau beberapa pesan (hingga 10) dari antrian tertentu menggunakan. ReceiveMessage
-
Menghapus pesan dari antrian menggunakan DeleteMessage.
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.
Kirim pesan
Impor
require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Sqs\SqsClient;
Kode Sampel
$client = new SqsClient([ 'profile' => 'default', 'region' => 'us-west-2', 'version' => '2012-11-05' ]); $params = [ 'DelaySeconds' => 10, 'MessageAttributes' => [ "Title" => [ 'DataType' => "String", 'StringValue' => "The Hitchhiker's Guide to the Galaxy" ], "Author" => [ 'DataType' => "String", 'StringValue' => "Douglas Adams." ], "WeeksOn" => [ 'DataType' => "Number", 'StringValue' => "6" ] ], 'MessageBody' => "Information about current NY Times fiction bestseller for week of 12/11/2016.", 'QueueUrl' => 'QUEUE_URL' ]; try { $result = $client->sendMessage($params); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }
Menerima dan menghapus 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([ 'AttributeNames' => ['SentTimestamp'], 'MaxNumberOfMessages' => 1, 'MessageAttributeNames' => ['All'], 'QueueUrl' => $queueUrl, // REQUIRED 'WaitTimeSeconds' => 0, ]); if (!empty($result->get('Messages'))) { var_dump($result->get('Messages')[0]); $result = $client->deleteMessage([ 'QueueUrl' => $queueUrl, // REQUIRED 'ReceiptHandle' => $result->get('Messages')[0]['ReceiptHandle'] // REQUIRED ]); } else { echo "No messages in queue. \n"; } } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }