我想安排一个工作每年只运行一个月(可配置),并且应该每天在特定时间运行(比如说UTC每天01:00 AM)。我们可以使用@Schedule注释在springboot中实现吗?如果没有,实现这一目标的最佳方法是什么? 我在下面尝试过
df_mini.coalesce(1)\
.write\
.format('com.databricks.spark.csv')\
.options(header='true', delimiter='\t')\
.save('gdrive/My Drive/base_mini.csv')
每天运行1点,但是我希望它在5月10日开始运行,并在6月10日停止运行。该开始时间和结束时间应该是可配置的,这样我以后就可以更改它而无需更改代码
答案 0 :(得分:1)
我建议以下内容之一:
public class Scheduler{
@Value("${your.start.date}")
private String startDate;
@Value("${your.end.date}")
private String endDate;
@Scheduled(cron = "0 0 1 1/1 * ? *")
public void do()
{
ZonedDateTime startDate = ZonedDateTime.parse(startDate);
ZonedDateTime endDate = ZonedDateTime.parse(endDate);
if(ZonedDateTime.now().isAfter(startDate) && ZonedDateTime.now().isBefore(endDate)){
//do your job here
}
//do nothing if condition is not meet
}
}