计划包含开始日期和结束日期的函数的最佳方法是什么?



我需要一个能够在特定日期和时间开始,也能够在特定日子和时间结束的方法。

例如,在06/20上午07:00必须启动一个函数,从设备收集一些数据并将其上传到API,我希望它在06/200上午10:00结束。

查看RxJava(RxKotin)。它将允许您制作一个在IO thread上运行的可调节observable,您也可以制作subscribe。每个emit可以将其调节到5分钟。当observable发射时,subscriber应该执行api post。至于什么时候启动observable,你可以用这个How在java中的特定时间调用一个方法。您可以设置其中两个,一个在早上7点subscribeobservable,另一个在上午10点unsubscribeobservable

如果您的应用程序是SpringBoot,您可以探索@Schedule注释。您可以创建您的cron,并在cron中指定秒/分钟/小时/天/天,并使其按照您的计划运行:

以下是启用春季计划的步骤

  1. @EnableScheduling注释添加到主类中。

  2. 添加@Scheduled要在间隔或特定计划中运行的方法顶部的注释。有多种方法你可以创建你的时间表,你可以阅读文件

  3. 对于您的案例,您可以创建一个cron,例如@Scheduled(cron="0 06月20日07时10分"(

以上cron将于6月20日上午7点至10点运行。您还可以在cron中添加最后一个可选参数,在中您可以指定年份,以防您希望它只在特定年份运行。

在下面的cron中是值:

周/年的秒/分钟/小时/天/月/天

年份参数是可选的

如果您需要更多关于可以在cron中使用的值的信息,请阅读官方文档:

https://docs.oracle.com/cd/E12058_01/doc/doc.1014/e12030/cron_expressions.htm正在为@Scheduled批注添加另一个链接:https://www.baeldung.com/spring-scheduled-tasks

最新更新