Я создаю задание cron, которое выполняет следующее:
1. Получение записей из БД
2. Для каждой записи запускается запрос скручивания к API.(некоторые запросы выполняются быстро, а некоторые загружают большие изображения или видео).
3. Если запрос не был успешным, создайте новый запрос с немного другими параметрами (все еще основанный на записи) и отправьте его снова.Это может происходить несколько раз.
4. При успешном запросе выполнить некоторые операции выбора / вставки БД (на основе исходной записи, которая вызвала отправку этого запроса).
Отправка запросов должна выполняться параллельно, так как некоторые занимают минуты(большие загрузки), а некоторые очень быстрые.
Что было бы наиболее подходящим для этого - наличие мастер-скрипта, который получает записи из БД и создает для каждой записи процесс обработки вызова API и анализаответ?Или использовать curl_multi для одновременной отправки нескольких запросов из одного и того же сценария и синтаксического анализа каждого из них, когда он возвращает?
Если бы использовать несколько процессов, что было бы лучшим способом сделать это - PCNTRL, popen и т. Д.?
Если использовать curl_multi, как узнать, какая запись в БД соответствует какому возвращающему запросу?
РЕДАКТИРОВАТЬ: Если бы я использовал curl multi, я бы, вероятно, использовал эту технику: http://www.onlineaspect.com/2009/01/26/how-to-use-curl_multi-without-blocking/
, чтобы не дождаться завершения всех запросов, прежде чем я начну обрабатывать ответы.
Спасибо!