2012-04-23 3 views
0

В настоящее время я использую cURL multi для проверки тысяч кодов статуса http за несколько секунд, и он работает очень хорошо.
Однако, мне интересно - это их все равно, я могу проверить, отвечает ли порт (например, mysql) с помощью cURL или другого метода многозадачности PHP?Способ проверки портов с помощью PHP (многопоточность?)

+2

Краткий ответ: Нет. Используйте язык, поддерживающий многопоточность. Или что-то такое асинхронное, как Node.js – DaveRandom

+1

Проблема в том, что использование 'fsockopen' является синхронным; после подключения вы можете установить сокет на неблокирование и использовать 'stream_select' для мультиплексирования ваших соединений, но вы теряете время, затраченное на подключение. Кроме того, вам по-прежнему нужен код для обработки ответа от этого порта (например, mysql) –

ответ

2

Короткий ответ:

нет потоков в PHP.

Однако вы можете взглянуть на расширение pcntl. Это не касается потоков, это fork (это означает, что процесс будет создан для каждой вилки).

A Thread extension был разработан несколько лет назад, но он не обновлялся уже 2 года.

Вилы являются абсолютно ценными и могут использоваться в вашем прецеденте, но его нелегко сохранить или написать. В зависимости от ваших потребностей вы можете лучше работать с python или perl, которые имеют лучшую поддержку потоков.