我正在尝试设置一个 python 脚本来查询数据库过去 5 分钟内的所有更新。考虑到更新的数量,它必须尽可能精确(我们的记录时间戳精确到微秒)。我考虑用两种方法解决这个问题 - 第一种是使用 cron。然而,这依赖于 cron 足够精确,以便始终在完全一样每次运行时间隔一定时间。因此,如果第一次执行时间是 00:00:00.123456789,则需要在 00:05:00.123456789 再次运行。否则,中间的间隙可能会遗漏记录。
另一个选择是找到一种方法来将 SQL 查询“捕捉”到最接近的分钟,四舍五入。但如果我可以使用 cron,我更愿意这样做,以尽可能保持简单。
答案1
我曾经有过 cron 脚本,由于某种原因,需要输出时间,但我发现它们有时会晚一秒(只能精确到秒)。我不知道这是由于 Cron 还是由于加载和执行脚本所需的时间不同。我想两者都有一点。无论哪种方式,依靠 sql 查询以完全相同的微秒执行都是行不通的。
您可以让 Python 脚本获取当前时间,然后将其四舍五入为最接近的 5 分钟间隔。例如,如果它检索到当前时间为 00:05:03.123,则只需删除秒数并根据 00:05:00 进行查询并返回到 00:00:00。
或者您可以记录最后一条记录的时间戳,然后下次从当前时间查询回到该时间戳。
编辑:删除第二段的第一句话——它实际上没有什么意义。