无限循环几乎总是不好。你想要什么,是一个无限循环和优雅的退出方式。
试试这个办法,在Python说明,但你可以找到其他语言的当量太:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import atexit
PID = os.getpid()
@atexit.register
def clean_shut():
LOGGER.debug("Clean shut performed")
try:
os.unlink("module_name.%d" % PID)
except:
pass
def main():
f = open("module_name.%d" % PID, "w")
f.write("Delete this file to shut module_name cleanly")
f.close()
conn = getConnection()
while os.path.exists("module_name.%d" % PID):
conn = getConnection()
# do something
if __name__ == '__main__':
main()
为了优雅的退出(如果你选择这样做),删除生成的module_name.%PID
文件让最近的迭代完成,这样你就不会丢失任何数据或者破坏你的每次迭代工作流程。
尝试异步编程,尝试扭曲。 – Abhijit 2013-02-27 19:46:35