Я впервые использую Amazon SQS.
Я все еще немного запутался, как хранить большие куски данных более 50000 результатов из базы данных и отправлять их в очередь.
Экземпляр AWS SQS
require_once __DIR__.'lib/aws/aws-autoloader.php';
try {
$aws_sqs_client = \Aws\Sqs\SqsClient::factory(array(
'region' => 'eu-west-1',
'credentials' => array(
'key' => AWS_ACCESS,
'secret' => AWS_SECRET
)
));
} catch ( Exception $e ) {
}
MYSQL Query
$q = 'SELECT user_id, user_email FROM user' // This has more than 50000 rows
// Is this correct way? it will create 50000 queues?
foreach ( $q as $key => $row ) {
$result = $client->createQueue(array(
'QueueName' => 'string',
'Attributes' => array(
'Queue_key_'.$key => 'string',
),
));
}
Или мне нужно разделить результат на меньший результат, например, подсчитать количество страниц?
$q = 'SELECT user_id, user_email FROM user LIMIT 1000, 1' // Count total number of pages
$total_page = 500 // example;
for($i=1;$i<$total_page;$i++) { // then push it to the queue
$result = $client->createQueue(array(
'QueueName' => 'string',
'Attributes' => array(
'Queue_key_'.$i => 'LIMIT 1000, ',$i, // Mysql LIMIT
),
));
}
Задача ещё не решена.
Других решений пока нет …