我们有大约 10 个不同的 Python 脚本,它们从 Web 下载数据、从数据库读取数据并将数据写回该数据库。他们每 10 秒重复一次(或最后一个任务完成后 10 秒)。
问题是,运行这些任务的最佳方法是什么?我可以想到几个方法:
a while True 运行任务然后休眠一段时间。它可以由像 supervisord 这样的看门狗保护,确保它始终处于运行状态。
让脚本只执行一次任务,并由另一个进程每 10 秒从外部调用一次脚本。
让脚本执行任务让我们说 1 小时(每 10 秒一小时),并让看门狗确保该任务在一个小时结束后再次运行。
我想避免实际上做某事的长时间运行的进程,因为我不想长时间处理内存问题等。
附加信息
这些脚本是不同的,因为它们每个都从不同的源检索数据,并查询、计算和插入不同的数据到数据库中。
这些任务每 10 秒执行一次,因为正在检索的数据是实时的,我们不仅需要保持非常频繁的更新,还要将所有历史数据保存在数据库中。
脚本使用了很多资源 - MySQL 连接、HTTP 连接、Redis 连接等。我们之前遇到过使用长时间运行方法的问题,特别是 MySQL 连接(MySQL 服务器之类的东西已经消失,甚至尽管所有连接都已关闭)。因此,倾向于让脚本在更短的时间内运行。
在这方面有哪些常见的方法?