Jekins
@Jekins
Front-end developer

Как ограничить одновременное количество потоков в php?

Доброго времени суток, столкнулся со следующей проблемой и прощу помочь с вопросом.

Опишу суть проблемы (действия происходять в PHP):
1) я получаю по api массив id со значениями
2) прохожусь по массиву id с помощью foreach
3) в рамках каждого foreach формирую INSERT с данными для базы msql и отправлю его туда

Если изначально в массиве мало id, то все проходит хорошо, но если штук 90, то как понимаю, из-за одновременных 90 обращений падает сервер, либо блокируются запросы в рамках моей сессии. В общем беда.
Как мне сделать, что бы каждый foreach осуществлялся к примеру каждые 10 секунд?

P.S. sleep(10) в конце каждого foreach уже писал и не помогает, результат тот же.
Спасибо.
  • Вопрос задан
  • 263 просмотра
Пригласить эксперта
Ответы на вопрос 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега PHP
Классический случай, когда вы, не разбираясь в предметной области, придумали проблему и пришли спрашивать, как её решить.

из-за одновременных 90 обращений падает сервер

Никаких "одновременных обращений" быть не может, php - синхронный и однопоточный.

либо блокируются запросы в рамках моей сессии.

Вот это уже ближе к истине. Опишите нормально симптомы проблемы, а вам уже подскажут и реальные причины и решение. Мой внутренний Нострадамус предполгает, что вас спасёт session_write_close().

P.S. А ещё INSERT можно делать пакетно....
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы