2014-09-24 2 views
3

PHP의 확장자는 inotify이지만 HHVM에서는 지원하지 않습니다.HHVM으로 파일 변경을 모니터하는 방법은 무엇입니까?

HHVM에서 적어도 IN_CLOSE_WRITE 이벤트에 대한 파일을 모니터링하려면 어떻게합니까? 당신이 발견 한 것처럼

<?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); 
+0

[this] (http://docs.hhvm.com/manual/en/book.inotify.php)를 확인 했습니까? – Prasanth

+1

@Prasanth 예, 조금 더 자세히 들어가면 (http://docs.hhvm.com/manual/en/function.inotify-init.php) "HHVM에서 지원되지 않음"이라는 큰 경고 메시지가 나타납니다. . 그것은 그 질문의 구멍 목적입니다. – marcio

답변

3

inotify를 확장은 현재 HHVM에서 지원되지 않습니다. HHVM 커뮤니티가 API를 지원하는 HNI 확장을 작성할 가능성이 있습니다. HHVM은 이미 inotify를 내부적으로 "statcache"코드 (예 : lstat() 정보를 캐싱)로 사용합니다. 따라서 빌드 환경은 이미 inotify의 가용성을 탐지하도록 설정되어 있습니다. 이 기능을 활용하면 처음부터 시작하는 것보다 기본 확장을 쉽게 작성할 수 있습니다.

그 전에는 PHP 코드와 함께 워치 만을 사용하는 것이 좋습니다. 파업 모델에서 watchman은 이전에 구성한 triggers을 기반으로 PHP 스크립트를 실행합니다. 끌어 오기/설문 조사 모델에서는 소켓을 통해 query을 감시 할 수 있습니다. 경비원을 사용하는 것의 한 가지 이점은 Linux보다 더 많은 운영 체제를 지원한다는 것입니다. 파수꾼과 기본 inotify 확장을 사용하는 성능은 작업량에 따라 다릅니다.

관련 문제