PHP имеет inotify
расширение, но HHVM не поддерживает его.
Как я могу контролировать файл хотя бы для IN_CLOSE_WRITE
событие на HHVM?
<?php // sample inotify code for PHP
$fd = inotify_init();
$watch_descriptor = inotify_add_watch($fd, __FILE__, IN_ATTRIB);
touch(__FILE__); // generate an event
$events = inotify_read($fd);
var_dump($events);
Как вы обнаружили, Inotify расширение в настоящее время не поддерживается в HHVM. Возможно, что сообщество HHVM напишет расширение HNI, поддерживающее API. HHVM уже использует inotify, когда это возможно, внутренне для своего кода «statcache» (например, для кэширования информации lstat ()). Таким образом, среда сборки уже настроена для обнаружения доступности inotify. Использование этого сделает написание собственного расширения проще, чем начинать с нуля.
До тех пор одной из альтернатив будет использование сторожа в сочетании с вашим PHP-кодом. В модели push сторож выполняет скрипт PHP на основе триггеры вы ранее настроили. В модели pull / poll вы могли бы запрос сторож над розеткой. Одним из преимуществ использования watchman является поддержка большего количества операционных систем, чем просто Linux. Производительность использования watchman по сравнению с собственным расширением inotify будет зависеть от рабочей нагрузки.
Других решений пока нет …