我想使用 pyinotify 来观察文件系统的变化。如果文件已更改,我想相应地更新我的数据库文件(重新读取标签,其他信息......)
我将以下代码放入我的应用程序的signals.py
import pyinotify
....
# create filesystem watcher in seperate thread
wm = pyinotify.WatchManager()
notifier = pyinotify.ThreadedNotifier(wm, ProcessInotifyEvent())
# notifier.setDaemon(True)
notifier.start()
mask = pyinotify.IN_CLOSE_WRITE | pyinotify.IN_CREATE | pyinotify.IN_MOVED_TO | pyinotify.IN_MOVED_FROM
dbgprint("Adding path to WatchManager:", settings.MUSIC_PATH)
wdd = wm.add_watch(settings.MUSIC_PATH, mask, rec=True, auto_add=True)
def connect_all():
"""
to be called from models.py
"""
rescan_start.connect(rescan_start_callback)
upload_done.connect(upload_done_callback)
....
当 django 使用 ''./manage.py runserver'' 运行时,这非常有用。但是,当作为 ''./manage.py runfcgi'' 运行时,django 不会启动。没有错误消息,它只是挂起并且不会守护进程,可能在“notifier.start()”行。
当我运行“。
当 django 作为 fcgi 运行时,与 django 一起启动无限线程的正确方法是什么?甚至可能吗?