Skip to content

Commit 9770961

Browse files
authored
Check monitor files count
1 parent 7dcb77a commit 9770961

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

process/Monitor.php

+8-2
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ public function __construct($monitor_dir, $monitor_extensions, $memory_limit = n
6868
*/
6969
public function checkFilesChange($monitor_dir)
7070
{
71-
static $last_mtime;
71+
static $last_mtime, $too_many_files_check;
7272
if (!$last_mtime) {
7373
$last_mtime = time();
7474
}
@@ -80,10 +80,12 @@ public function checkFilesChange($monitor_dir)
8080
$iterator = [new \SplFileInfo($monitor_dir)];
8181
} else {
8282
// recursive traversal directory
83-
$dir_iterator = new \RecursiveDirectoryIterator($monitor_dir, \FilesystemIterator::FOLLOW_SYMLINKS);
83+
$dir_iterator = new \RecursiveDirectoryIterator($monitor_dir, \FilesystemIterator::SKIP_DOTS | \FilesystemIterator::FOLLOW_SYMLINKS);
8484
$iterator = new \RecursiveIteratorIterator($dir_iterator);
8585
}
86+
$count = 0;
8687
foreach ($iterator as $file) {
88+
$count ++;
8789
/** var SplFileInfo $file */
8890
if (is_dir($file)) {
8991
continue;
@@ -107,6 +109,10 @@ public function checkFilesChange($monitor_dir)
107109
break;
108110
}
109111
}
112+
if (!$too_many_files_check && $count > 1000) {
113+
echo "Monitor: There are too many files ($count files) in $monitor_dir which makes file monitoring very slow\n";
114+
$too_many_files_check = 1;
115+
}
110116
}
111117

112118
/**

0 commit comments

Comments
 (0)