pynotify und Queue
Verfasst: Dienstag 30. August 2011, 10:30
Hallo,
ich experimentiere zur Zeit mit der automatisierten Verarbeitung von Dateien.
Folgendes erstes Python Script ist dabei entstanden:
Mein Problem ist, dass die func1-3 relativ viel zeit in Anspruch nehmen. Solange die Funktionen laufen wird das Verzeichnis nicht weiter überwacht. Ich habe dann versucht die func in eigene Threads auszulagern. Das funktionierte auch, allerdings können die gleichen Funktionen nicht parallel ablaufen. Deshalb bräuchte ich ein Queue System, was jeden erkannten filepath in eine Warteschlange schickt wo er sich dann von meinen func1 -3 geholt werden kann wenn diese den vorigen filepath abgearbeitet haben. Ich habe gesehen das es im threading Modul ein Queue System gibt. Weiß aber nicht genau ob und wie ich das einsetzten muss.
Ich hoffe mein Problem wird klar.
Gruß
ich experimentiere zur Zeit mit der automatisierten Verarbeitung von Dateien.
Folgendes erstes Python Script ist dabei entstanden:
Code: Alles auswählen
import pyinotify
import re
wm = pyinotify.WatchManager() # Watch Manager
mask = pyinotify.IN_DELETE | pyinotify.IN_CREATE # watched events
class EventHandler(pyinotify.ProcessEvent):
def process_IN_CREATE(self, event):
if re.search("name", event.pathname):
dirList=os.listdir(event.path)
for fname in dirList:
suche = re.search("\.exe", fname, re.I)
if suche :
print "gefunden " + fname
filepath = event.path+"/"+fname
func1(filepath)
func2(filepath)
func3(filepath)
break
handler = EventHandler()
notifier = pyinotify.Notifier(wm, handler)
wdd = wm.add_watch('/tmp', mask, rec=True, auto_add=True)
print "Start"
notifier.loop()
Ich hoffe mein Problem wird klar.
Gruß