我需要一个能够在特定日期和时间开始,也能够在特定日子和时间结束的方法。
例如,在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点subscribe
到observable
,另一个在上午10点unsubscribe
从observable
。
如果您的应用程序是SpringBoot,您可以探索@Schedule注释。您可以创建您的cron,并在cron中指定秒/分钟/小时/天/天,并使其按照您的计划运行:
以下是启用春季计划的步骤
-
将@EnableScheduling注释添加到主类中。
-
添加@Scheduled要在间隔或特定计划中运行的方法顶部的注释。有多种方法你可以创建你的时间表,你可以阅读文件
-
对于您的案例,您可以创建一个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