多个不同时间的java Spring调度
我目前正在做一个当用户点击时自动抓取网页内容的项目,但我遇到了一个问题,我需要在不同的时间不同的秒运行这些方法。我已经提到了@Schedule
和TimerTask,但它们只能在固定时间工作。我的案子有什么解决办法吗
代码示例:
public void run(String selectedWeb) {
if(selectedWeb.equals("First Web")) {
scrapeFirstWeb(); //Need this method auto execute on 8, 30, 42 seconds every minute
}else if(selectedWeb.equals("Second Web")) {
scrapeSecondWeb(); //Need this method auto execute on 10am, 1pm, 11pm every day
}
}
PS:我以前在cron中使用过@Scheduled annotation,但有一个问题是这个annotation将自动运行所有方法,包括我没有选择运行的方法。因为我可能有只刮第一个网或第二个网的情况,而不是两者都刮,但是注释会忽略你选择的网,当时间到了,它也会非常可爱。这就是我的问题
如果有人知道我有什么方法可以让@Schedule annotation为我选择的方法运行,只能做评论,请提前告诉我,谢谢
# 1 楼答案
最后我找到了一种解决这个问题的方法,它还可以使用back@Schedule注释
详细解释可参考此处https://www.baeldung.com/spring-scheduled-enabled-conditionally