Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Inotify i problem przy usuwaniu wielu plików na raz
nosbyd
post 6.01.2020, 18:10:00
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 13.11.2019

Ostrzeżenie: (0%)
-----


Cześć,

Mam problem z inotify w PHP, otóż pewien kod wykonuje się w pętli while:

  1. $fd = inotify_init();
  2. $watch_descriptor = inotify_add_watch($fd, $dir, IN_ALL_EVENTS);
  3. $connection = mysqli_connect("localhost", "testuser", "admin", "bazaTestowa") or die("DB Connection error . . .");
  4.  
  5. while (true)
  6. {
  7. $events = inotify_read($fd);
  8. if ($events[0]['wd'] === $watch_descriptor){
  9. if ($events[0]['mask'] === IN_CREATE)
  10. {
  11. $action = "created";
  12. InsertValue($table_name, $file_name, $action, $date, $connection);
  13. }
  14.  
  15. if ($events[0]['mask'] === IN_DELETE)
  16. {
  17. $action = "deleted";
  18. InsertValue($table_name, $file_name, $action, $date, $connection);
  19. }
  20. }
  21. elseif ($events[0]['wd'] === $watch_descriptor)
  22. {
  23. }
  24. }


i ten oto inotify nie nadąża z dodawaniem rekordów do bazy podczas jednoczesnego usuwania wielu plików. Tzn. jeśli wrzucam do śledzonego katalogu 10 plików, wszystkie dodają się po kolei z kilku milisekundowym odstępem czasowym, to do bazy doda się 10 nowych rekordów. Ale jeśli te same pliki usuwam, dzieje się to jednocześnie, inotify tak jakby nie wyrabia i pomija wykonanie dodawania rekordów do bazy, w wyniku czego zamiast info o 10 usuniętych plikach, w bazie są tylko np 4, albo 5 rekordów...
Próbowałem z usleep po InsertValue, nie działa.

Nie mam zielonego pojęcia jak to ogarnąć... Może Wy mielibyście jakiś pomysł? worriedsmiley.gif
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 01:56