Я пишу некоторый код, который обрабатывает очередь элементов. Вот как это работает:
- Получить следующий элемент, помеченный как необходимый
обрабатываться из MySQL
строка базы данных.
- Запрос информации в Google API
используя Curl, подождите, пока информация
вернулся.
- сделать оставшуюся часть обработки
на основании возвращенной информации.
- Пометить товар как обработанный в
ДБ, перейти к следующему пункту.
Проблема в том, что на шаге №2. Google иногда требуется 10-15 секунд, чтобы вернуть запрошенную информацию, в течение этого времени мой сценарий должен оставаться остановленным и ждать.
Мне интересно, смогу ли я изменить код для выполнения следующего:
- Получить следующие 5 предметов для обработки
как обычно.
- Запрос информации по пунктам 1-5 от
Гугл, один за другим.
- Когда информация для элемента 1
возвращается, обратный вызов должен быть
сделано, что вызывает функцию или
в противном случае вызывает некоторый код, который затем
делает оставшуюся часть обработки
по пунктам 1-5.
- А потом сценарий начинается заново
пока все незавершенные пункты в БД
помечено обработано.
Как можно добиться чего-то подобного?