好的,我需要一个目录监视器,它可以不断扫描目录以查找添加的新 .txt 文件。打开 .txt 文件,读取/解析内容并将数据写入 mysql 表。我正在研究 inotify ,它看起来很健壮并且可以完成这项任务,但我不知道命令序列将如何完成我上面提到的任务。
这是一个潜在的例子(告诉我我是否正确地考虑了这个):
$fd = inotify_init();
$watch_descriptor = inotify_add_watch($fd, '/some/system/dir/', IN_CREATE);
// Loop forever (never break out of loop since I want to ALWAYS monitor this dir)
while (true) {
$events = inotify_read($fd);
//THIS IS WHERE I DON'T KNOW HOW TO OPEN THE NEWLY CREATED FILE
//PLEASE HELP HERE WITH HOW TO SUCCESSFULLY CREATE THE EVENT ACTIONS
/*
1) OPEN FILE
2) READ/PARSE CONTENTS
3) CREATE MYSQL INSERT STATEMENT
4) DELETE FILE
*/
}
这带来的一个问题是:继续这个循环会永远消耗大量的处理器容量吗?并且:如果是这样,这真的是我应该用来实现目标的方法吗?
任何帮助理解 inotify 和完成我的目标所需的顺序都会非常有帮助。
先感谢您。