Как запустить асинхронно несколько запросов в php?

Рейтинг: 0Ответов: 1Опубликовано: 26.01.2015

Значит, есть сервер. Он отдает поступившие сообщения. Есть id аккаунтов для проверки. И есть знания php, хорошие.

Что нужно. Нужно ОДНОВРЕМЕННО проверять сообщения для 10-20 аккаунтов. То есть запустить типа асинхронные запросы по указанным http/htpps адресам и ждать ответа по тайм-ауту 30 секунд.
При получении ответа записывать инфу в бд mysql и снова делать запрос на сервер и так далее...

Как это сделать, посоветуйте, если на php трудно/плохо/геморно, посоветуйте, на чем сделать, чтоб не шибко сложно. )

Работал недавно с phantomjs, может, как-то на нем? Или что там еще есть...

UPD

А можно сделать так: типа запустить скрипт столько раз, сколько аккаунтов, с параметрами акка? Или они все равно будут по очереди выполняться? Типа:

php get_mess.php akk=1 
php get_mess.php akk=2 
.....

но так, чтоб не ждать завершения первой запущеной задачи, а сразу запускать вторую и т.д.

Ответы

▲ 1

Тут помогут вам потоки http://php.net/manual/en/class.thread.php
Но это довольно затратная процедура для PHP. Возможно, стоит посмотреть в сторону скриптов на других ЯП, например, Python.

UPD: Вот еще вдогонку форки - http://php.net/manual/en/function.pcntl-fork.php. Пользовались и тем, и тем. Надо смотреть на задачи и, исходя из этого, применять решение. http://www.geekride.com/fork-forking-vs-threading-thread-linux-kernel/ - fork vs thread