我正在使用pyinotify(process_IN_MOVED事件)來監視文件出現在目錄中。當出現新文件時,將觸發此事件並以某種方式處理文件。問題是,有時文件出現在目錄中的速度比我能處理它們的速度快,這意味着一堆文件不會得到處理。我可以有一個功能睡10秒,然後醒來找到新的文件或東西,但我真的想堅持基於事件的解決方案,如果可能的話。有沒有辦法做到這一點?文件出現在目錄中比我可以處理它們更快(pyinotify)
4
A
回答
2
扭曲了inotify support。你可以給它一個回調來做你的處理。你絕對不想成爲sleep
ing。這取決於你正在做什麼樣的處理,以確定是要在進程中還是通過另一個進程來完成它,但是不應該丟失事件。
3
通常我會在這裏實現一個線程池來處理處理,而事件觀察者只是在觀察事件並將它們傳遞給池。 粗糙例如:
(event happens) ->
Watcher registers the event ->
puts it into the thread pool queue ->
thread pool processes the event
這樣,觀察者將花最少的時間等待的部分之外,從而大大減少了錯過的更新的機會。
1
正如Humungus所說,線程池在這裏是一個不錯的選擇。
我剛剛發佈了一些代碼,我寫了整整這個問題,在:
https://github.com/timstaley/autocrunch
這是一個有點凌亂,應用程序的具體細節,但你應該能夠替代函數放棄對自己的需要。 我可能會在某個時候寫一篇減少版的博客文章,但現在沒時間了。 HTH!
相關問題
- 1. 創建文件並可以使用DDMS查看它們,但它們不出現在Windows文件管理器中
- 2. 批處理文件來複制目錄,如果它具有比目標目錄
- 3. 我們可以在apk文件中捆綁一個目錄嗎?
- 4. MSBuild中的SignFile任務:我們可以讓它更快嗎?
- 5. Webpack:將javascript文件複製到輸出目錄而不處理它們
- 6. 順序處理比池處理更快
- 7. 我們可以將批處理文件的輸出重定向到pdf文件
- 8. 如何在需要它們的項目中處理30k文件?
- 9. 批處理文件更改目錄
- 10. 如何更改批處理文件輸出文本的目錄?
- 11. 我可以使用Python多處理來讓它在windows上運行得更快
- 12. 在java中如果我們可以處理它,如果我們可以處理它在try塊中定義一個標誌塊的確切使用finally
- 13. 蟒蛇pyinotify中監視指定後綴的文件在目錄
- 14. 我可以在Elmah記錄它們之前更改異常嗎?
- 15. 編寫一個批處理文件以在文件出現後刪除它?
- 16. pyinotify:處理IN_MODIFY觸發器
- 17. 我們可以像C#那樣處理jQuery文件嗎?
- 18. 刪除批處理文件中目錄樹的最快方法
- 19. 我可以輸出多個文件到標準輸出並分別處理它們嗎?
- 20. 我們可以處理使用
- 21. 我們可以忽略屏幕方向嗎?還是我們必須處理它?
- 22. PHP來列出目錄中的文件,並鏈接到它們
- 23. 我們可以使用xmlserializer更新現有的xml文件嗎?
- 24. 我可以比/ dev/null獲得更快的輸出管道嗎?
- 25. 我們可以在目標c中使用接口和實現文件嗎?
- 26. 處理用戶目錄中的文件
- 27. iPhone - 我可以看看目錄文件
- 28. 我可以使用requirements.txt文件來處理本地python目錄嗎?
- 29. 批處理文件找到重複的文件,並將它們放在單獨的目錄中
- 30. 批處理文件在Windows 7中列出目錄中的所有文件