我有一个缓慢的内存泄漏的应用程序,由于各种原因,我无法摆脱.因此,我想使用让我的工人定期死亡和复活的旧技巧.
(即在多处理池中使用与maxtasksperchild相同的策略......"......在其他系统(例如Apache,mod_wsgi等)中找到的频繁模式可以释放工作人员所拥有的资源,这样可以让池中的工作人员完成退出之前只有一定数量的工作,被清理并产生一个新的过程以替换旧的......")
到目前为止,我能够想到的最好的方法是让一个线程可以休眠,然后再打电话os._exit(-1)
.
这是要走的路,还是有更好的方法定期回收我的工人?
这是我现在要走的路:
class Quitter(Thread):
def run(self):
while True:
time.sleep(random.randrange(5, 7)):
print str(os.getpid())
os._exit(-1)
Quitter().start()
Run Code Online (Sandbox Code Playgroud)
Gunicorn响应:
2013-03-13 03:21:24 [6487] [INFO] Booting worker with pid: 6487
...
2013-03-13 03:21:30 [6492] [INFO] Booting worker with pid: 6487
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1342 次 |
最近记录: |