我使用类似下面的代码来解决这个问题,在应用程序初始化时调用monitorFiles(...)方法,它监视文件,在看到更改时发送TERM信号。
我仍然更喜欢使用paster的--reload参数的解决方案,因为我想这个解决方案有bug:
import os
import time
import signal
from deepthought.system import deployment
from multiprocessing.process import Process
def monitorFiles():
if deployment.getDeployment().dev and not FileMonitor.isRunning:
monitor = FileMonitor(os.getpid())
try: monitor.start()
except: print "Something went wrong..."
class FileMonitor(Process):
isRunning = False
def __init__(self, masterPid):
self.updates = {}
self.rootDir = deployment.rootDir() + "/src/python"
self.skip = len(self.rootDir)
self.masterPid = masterPid
FileMonitor.isRunning = True
Process.__init__(self)
def run(self):</