alestro
@alestro

Как можно отследить изменение файлов в директории?

Хочу реализовать вотчер, который будет следить за изменением файлов в директории и кидать соответствующее событие. Единственный подход, который пришел в голову: это крутить консольный скрипт в бесконечном цикле с заданным интервалом, например, 10 сек и сверять слепок папки со слепком из предыдущей итерации, но подход кажется мне не очень удачным в плане нагрузки на фс. Есть ли более удачное решение?
  • Вопрос задан
  • 142 просмотра
Пригласить эксперта
Ответы на вопрос 3
thewind
@thewind
php программист, front / backend developer
Как вариант - сортировать файлы по времени изменения desc. И смотреть на самый первый. Если изменился - значит брать детальные изменения. Но тут суть схожа с вашей идеей.
Ответ написан
Комментировать
Adamos
@Adamos
Ответ написан
Комментировать
pickHabr
@pickHabr
Костыльных дел мастер
В общем на PHP есть вот такой вариант https://habr.com/ru/articles/213895/
Если не обязательно PHP то есть вот такое https://github.com/SpartanJ/efsw

Если файлы таки меняются посредством http запросов, то просто делаешь класс слушателя и в нужных API методах дергаешь событие. Для Laravel https://laravel.com/docs/11.x/events, если на чистом PHP, то вызываешь в API метод который положит, нужные для обработки изменений, данные в очередь (например на редисе) и рядом делаешь демон, который из очереди будет вычитывать и что-то с этим делать
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы