如何解决Python 无限循环卡住了
我正在编写一个程序,它监视日志文件中的新数据,并对其进行一些分析。 逻辑如下
import time
class LogReader():
def __init__(self):
self.logpath = "/path/to/log/file"
pass
def line_processing_function(self,line):
"""
This function processes the line
"""
# Do something
return
def read_file(self):
with open(self.logpath) as f:
return f.readlines()
def run_main_loop(self):
data = self.read_file()
while True:
time.sleep(1)
new_data = self.read_file()
for line in new_data[len(data): ]:
self.line_processing_function(line)
data = new_data
if __name__ == '__main__':
lr = LogReader()
lr.run_main_loop()
这个函数在大多数情况下都能很好地工作,但有时它会“卡住”,例如,它陷入了某种其他阻塞循环。按 ^C 对问题进行排序,while 循环返回,处理继续。我无法确定何时卡住的模式,因为它卡在看似随机的代码部分。
我不能透露确切的 line_processing_function
,但它涉及非常基本的文本匹配、正则表达式和发送请求。
我的问题是,问题可能来自哪里?可能是因为日志文件(由另一个程序连续写入)正在更改?或者它是 line_processing_function
的一个明确问题?此外,我该如何进一步调查此问题?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。