我想在java中创建一个调度程序,它在特定时间每天进行API调用,并将内容保存在文本文件中。一种选择是做这样的事情。 https://www.mkyong.com/java/how-to-run-a-task-periodically-in-java/。但那么在java中有没有其他方法可以做到这一点?我正在寻找最有效的方法。任何建议。
@Component
class WelcomeService {
public String retrieveWelcomeMessage() {
//Complex Method
String msgType="Hello World";
RestTemplate restTemplate = new RestTemplate();
String consumeJSONString = restTemplate.getForObject("https://ubasocials.ubagroup.com/geo-locationservice/odata/ATMs", String.class);
writetexttofile(consumeJSONString);
/* Gson gson = new GsonBuilder().create();
Quote r = gson.fromJson(consumeJSONString, Quote.class);
msgType=r.getValue().getQuote();*/
return msgType;
}
}
答案 0 :(得分:0)
使您的WelcomeService可运行,然后将其传递给ScheduledExecutorService的实例。
private final ScheduledExecutorService sheduledExecutorService = Executors.newScheduledThreadPool(1);
sheduledExecutorService.scheduleAtFixedRate(runnableWelcomeService, 0, 1, TimeUnit.DAYS);
答案 1 :(得分:0)
如果你不想使用像spring这样的框架。您可以使用windows task scheduler to schedule您的java代码。
第1步:将您的java代码打包为可运行的jar。
第2步:创建一个运行jar的批处理文件。
第3步:在windows tash scheduler中使用批处理文件。
答案 2 :(得分:0)
使用Spring引导: 1.在下面显示的主要类中添加@EnableScheduling批注
@SpringBootApplication
@EnableScheduling
public class MySchedulerApplication {
public static void main(String[] args) {
SpringApplication.run(MySchedulerApplication .class, args);
}
}
@Component
public class JobScheduler {
@Scheduled(cron = "*/1 * * * * ?")
public void cronJobSch() {
//to do
}
}```