【发布时间】:2012-07-05 14:17:47
【问题描述】:
我正在编写一些 Python 代码来监视某个目录中的新文件,并使用 cx_Oracle 模块将新文件插入到数据库中。该程序将作为服务运行。在给定时间,可能有许多文件同时到达,但也可能有长达一小时的时间没有收到文件。关于良好做法:无限期地保持数据库连接打开是不是很糟糕?一方面,有些事情告诉我这不是一个好主意,但另一方面,为每个接收到的文件创建一个新的数据库对象并在之后关闭它会产生很多开销,尤其是在一次接收到许多文件时。任何有关如何解决此问题的建议将不胜感激。
【问题讨论】:
-
不断打开它是不“礼貌”的。插入是否时间紧迫?如果没有,您可以将它们缓存一分钟左右,然后每分钟执行一组数据库操作。否则,您可以将对象缓存一段时间并在不活动后将其关闭。