ここにあなたの道を設定する必要があるいくつかのヒントがあります:
- 使用しているクラスは、Amazon のスロットル制限に達するのを避けるために、意図的に 1 秒の遅延を追加しています (
AmazonECS::requestDelay($enable = null)
)。
- AmazonECS のインスタンスをシリアル化するべきではありません。これは、Amazon ECS API への単なるインターフェイスであり、必要なデータが含まれていないためです。
- ユーザーのセッションで AmazonECS のインスタンスで実行したリクエストの結果をキャッシュする必要があります。
大まかな例を次に示します (私は以前に AmazonECS を使用したことがなく、コードを提供したこともありません)。
session_start(); // remove this if you are already doing it somewhere else
$amazon = new AmazonECS($accessKey, $secretKey, $country, $associateTag);
$myQuery = 'my query';
if (isset($_SESSION['amazon_ecs_cache'][$myQuery]) {
// use the cached data in the session
$myData = $_SESSION['amazon_ecs_cache'][$myQuery];
} else {
// get the data from amazon
$myData = $amazon->search($myQuery);
// cache it so we don't have to get it again next time
$_SESSION['amazon_ecs_cache'][$myQuery] = $myData;
}
// do fun stuff with $myData here
var_dump($myData);