每天在java的特定时间调用API?

时间:2017-07-06 13:03:44

标签: java scheduler

我想在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;
        }
} 

3 个答案:

答案 0 :(得分:0)

查看ScheduledExecutorService

使您的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);
    }

}
  1. 添加调度程序类
@Component
public class JobScheduler {
        @Scheduled(cron = "*/1 * * * * ?")
        public void cronJobSch() {
            //to do
        }

}```