Есть файл который запускается каждые N минут. Когда запускается этот файл там происходит примерно следующее:
Если делать последовательно, получается критическое время ожидания. Важно что бы 100 групп выполнялись не более 1 минуты. Если сделать эту задачу не последовательно а параллельно, в теории это будет занимать примерное 10 секунд и даже меньше. Вопрос уже будет состоят в мощности сервера, но это не проблема.
Можно конечно создать десятки файлов и поставить их в КРОН задачу. Но мне кажется есть куда элегантнее решение да и конце в концов правильное.
В контексте выполнения скрипта PHP изначально однопоточный. Есть разные ухищрения по распараллеливанию, но они по своему духу близки расставлению костылей.
Варианты есть такие:
UPD в связи с обновлением вопроса
Скорее всего узким местом у вас является запрос к API VK. В этом случае можно использовать curl_multi_init, для распараллеливания запросов.
Можешь попробовать расширение pthreads или multicurl (обрати внимание на библиотеку http://docs.guzzlephp.org/en/stable/). Может быть тебе подойдет этот вариант http://php.net/manual/ru/function.pcntl-fork.php. Как я понял, список групп можно запросить один раз и потом, уже исходя из содержимого списка, необходимо выполнять запросы ко внешнему API.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
есть проблемаЯ сделал MVC на PHP, который распознает / в строке и делает соответствующие действия
Я не до конца понимаю как будет работать этот методДопусти я отправил запрос на сервер и зациклил его, до получения новых данных
Разрабатываю ссылки аналогичные в социальных сетяхПолучаю метаданные для этих ссылок
Не работает вывод данных из таблицы, хотя раньше работалоКак можно пофиксить?