Есть ли хороший способ сделать некоторые вызовы PHP асинхронными, неблокирующими?
Например, взгляните на этот простой код:
<?php
$hosts = [...] // array of 100+ hosts
foreach ($hosts as $host){
$sysNames['$host'] = snmpget($host, 'community', "system.sysName.0");
}
echo 'done'
Например, если 10 хостов не работают, это приведет к огромной задержке.
Как сделать вызовы snmpget неблокирующими?
Я пробовал с React \ Promise, но не смог найти несколько полезных примеров для начала. Кто-нибудь может предложить правильную реализацию этого класса?
PHP поддерживает многопоточность, используя потоки расширения; но для этого нужно правильно собрать php-бинарный файл, плюс немного дополнительные DLL, если вы находитесь на Windows
Других решений пока нет …