我们有大约10种不同的Python脚本,它们可以从网上下载数据,从数据库读取数据并将数据写回到该数据库。他们每10秒钟重复一次(或最后一次任务完成后的10秒钟)。重复的任务 - 产生新的进程或连续运行?
问题是,运行这些任务的最佳方法是什么?我可以想到几种方法:
a while True运行任务,然后睡眠的时间间隔。它可以像supervisord这样的监管机构来保护,确保它始终保持正常运转。
使脚本只执行一次任务,并且每隔10秒由另一个进程从外部调用该脚本。
让脚本执行任务让我们说1小时(每10秒钟一小时),然后让看门狗确保任务在小时结束后再次运行。
我想,以避免长时间运行的进程,实际上做一些事情,因为我不想处理过的很长一段时间内存问题等。
附加资料
的脚本是不同的,因为它们每一个检索来自不同的源的数据,并且查询,计算和不同的数据插入到数据库中。
由于被检索的数据是实时的,因此每10秒执行一次任务,我们不仅需要非常频繁地更新它,而且还要将所有历史数据保存在数据库中。
脚本中使用了很多资源--MySQL连接,HTTP连接,Redis连接等。我们遇到过使用长时间运行的方法的问题,特别是与MySQL连接有关的问题(比如MySQL服务器已经消失,即使所有连接都已关闭)。因此倾向于让脚本在较短的时间内运行。
这是什么常见的方法?
请参阅我的编辑,谢谢! – user1094786 2013-03-26 23:08:36