Я пишу код, который обрабатывает очередь элементов. Как это работает:
- Получите следующий элемент, помеченный как подлежащий обработке из строки базы данных mysql.
- Запросите некоторую информацию из API Google с помощью Curl, подождите, пока информация не будет возвращена.
- Сделайте оставшуюся часть обработки на основе возвращенной информации.
- Отметьте элемент, обработанный в db, перейдите к следующему элементу.
Проблема в том, что на шаге 2. Google иногда занимает 10-15 секунд, чтобы вернуть запрошенную информацию, в течение этого времени мой скрипт должен оставаться остановленным и ждать.
Мне интересно, могу ли я изменить код, чтобы сделать следующее:
- Получите следующие 5 предметов, которые будут обработаны, как обычно.
- Запросить информацию для пунктов 1-5 из Google, один за другим.
- Когда информация для элемента 1 возвращается, должен быть выполнен «обратный вызов», который вызывает функцию или иным образом вызывает некоторый код, который затем выполняет оставшуюся часть обработки на элементах 1-5.
- И затем сценарий начинается до тех пор, пока все незавершенные элементы в db не будут помечены обработанными.
Как можно достичь такого?