我正在创建一个将在后台连续运行的 java 服务,该服务的工作是在特定日期创建表的副本。确切地说,我从某个表中读取数据,如果表中的 record_date 与当前日期匹配,我需要创建表副本。然后服务应该休眠到下一个运行日期。下一个运行日期也是通过查看表中的记录来确定的。
目前,我如何做到这一点,是创建一个在 while(true) 循环中运行的线程。当线程完成执行任务,即创建表副本时,我使用 Thread.sleep() 让它进入睡眠状态,直到它下次需要运行。线程休眠的毫秒数,我通过计算当前日期(线程执行任务的日期)和下一次运行日期之间的差异来计算。
这是正确的方法吗,在这个特定场景中使用 thread.sleep() 是正确的吗?我这样说是因为线程的下一次运行日期可能在三个月甚至一年之后。如果我在这里不是很清楚,也请告诉我。