关于将问题数学化的一点思考

      最近在做定时任务的模块,在本地写了简单的demo测试执行稳定性问题

      demo很简单:计划开始后每隔25分钟将当前时间写入log中,执行一段时间后检查是否有漏执行的情况

      在运行一段时间后检查log发现了一个问题:

   假设第一次打印时间为 2021-06-02 09:09:28,

      那么再一段时间后的某个时间点又会记录一次时间 2021-06-02 14:09:28  这两个时间里 分针是一样的都是9分  两者相差300分钟

      乍一看貌似还有点意思,会不会再经过某个时间后,打印时间的分钟数又是09呢?答案是肯定的(最快的方式就是极值法:假设每个整点打印当前时间,那么下次就是经过60分钟再次打印)

      那如何将这个问题数学化从而快速的得到任意时间打印当前时间,经过多久能再次循环?

      比如我的计划任务间隔时间为46分钟呢   或者改为19分钟呢   

     

      这里需要讲一个小学学过的知识:最小公倍数(两个或多个整数公有的倍数叫做它们的公倍数)

      也就是算你的间隔执行时间 (假设是25) 和 60之间的最小公倍数。

原文地址:https://www.cnblogs.com/yhnet/p/14844713.html