Amazon の AWS SDK for PHP を使用して、かなり負荷の高いクエリを実行する必要があります。
最も効率的な方法は、PHP の MultiCurlを使用することです。Guzzle には既に MultiCurlの機能が組み込まれているようです。
AWS SDK が提供する標準的な方法を使用すると、自動的に MultiCurl が使用されますか?それとも使用方法を直接指定する必要がありますか? たとえば、$sns->Publish()
30 回呼び出します。
ありがとう!
Amazon の AWS SDK for PHP を使用して、かなり負荷の高いクエリを実行する必要があります。
最も効率的な方法は、PHP の MultiCurlを使用することです。Guzzle には既に MultiCurlの機能が組み込まれているようです。
AWS SDK が提供する標準的な方法を使用すると、自動的に MultiCurl が使用されますか?それとも使用方法を直接指定する必要がありますか? たとえば、$sns->Publish()
30 回呼び出します。
ありがとう!
並列リクエストは、SDK でプレーンな Guzzle とまったく同じように機能し、MultiCurl を利用します。たとえば、次のようなことができます。
$message = 'Hello, world!';
$publishCommands = array();
foreach ($topicArns as $topicArn) {
$publishCommands[] = $sns->getCommand('Publish', array(
'TopicArn' => $topicArn,
'Message' => $message,
));
}
try {
$successfulCommands = $sns->execute($publishCommands);
$failedCommands = array();
} catch (\Guzzle\Service\Exception\CommandTransferException $e) {
$successfulCommands = $e->getSuccessfulCommands();
$failedCommands = $e->getFailedCommands();
}
foreach ($failedCommands as $failedCommand) { /* Handle any errors */ }
$messageIds = array();
foreach ($successfulCommands as $successfulCommand) {
$messageIds[] = $successfulCommand->getResult()->get('MessageId');
}
// Also Licensed under version 2.0 of the Apache License.
AWS SDK for PHP ユーザーガイドには、この方法でコマンド オブジェクトを操作する方法の詳細が記載されています。