Я пишу работника, который потребляет работу из Amazon SQS, поэтому поток кода выглядит следующим образом
// symfony
while (true) {
try {
$jobData = $this->legacyQueue
->setQueueName($this->queueName)
->receiveMessage();
$jobDataArray = json_decode($jobData, true);
$variableArray = array(1,2,3);
... // job processing
}
}
Есть ли способ сделать потребление Amazon SQS асинхронным, проблема с текущим потоком заключается в том, что память, выделенная для переменных внутри, пока цикл не освобождается после обработки задания. Это вызывает проблемы с памятью на стороне сервера.
Задача ещё не решена.
Других решений пока нет …