远程访问接口和定时任务

    科技2025-04-16  12

    文章目录

    RestTemplate接口远程访问定时任务jdk:TimerTaskspring:task

    RestTemplate接口远程访问

    在java代码里访问restful服务,可以使用apache的HttpClient。同时在spring-data框架中提供的RestTemplate类可用于在应用中调用rest服务,它简化了与http服务的通信方式,统一了RESTful的标准,封装了http链接,只需要传入url及返回值类型即可。相较于之前常用的HttpClient,RestTemplate是一种更优雅的调用RESTful服务的方式。 public class RestTemplateTest { public static void main(String[] args) { RestTemplate t = new RestTemplate(); Date date = new Date(); SimpleDateFormat format = new SimpleDateFormat("M/d"); String today = format.format(date); String object = t.getForObject("http://v.juhe.cn/todayOnhistory/queryEvent.php?key=聚合数据的key&date="+today, String.class); // t.postForObject(); // t.put(); // t.delete(); JSONObject jsonObject = JSON.parseObject(object); Object result = jsonObject.get("result"); System.out.println(result); } } // restful风格接口的数据接收 String str = rt.getForObject("http://localhost:8080/user/{1}/{2}", String.class,"111",,"222"); // Map<String,String> map = new HashMap<>(); // map.put("phone","33333"); // String str = rt.getForObject("http://localhost:8080/user/{phone}", String.class, map);

    定时任务

    创建任务类启动任务,设置任务的第一次执行时间,设置执行间隔

    jdk:TimerTask

    用在程序运行中执行定时任务。 public class GetDataTask extends TimerTask { @Override public void run() { System.out.println("获取接口数据"); } } public class TimerTaskTest { public static void main(String[] args) throws ParseException { Timer timer = new Timer(); // 延迟5秒执行,同时每隔5秒执行一次 timer.schedule(new GetDataTask(),5000,5000); // 指定时间执行 String time = "2020-08-10 18:38:20"; SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = format.parse(time); timer.schedule(new GetDataTask(),date); } }

    spring:task

    用在程序启动之前,已经定好了一些任务的执行策略。spring中配置 <!--定时任务,scheduled注解识别--> <task:annotation-driven></task:annotation-driven> @Component public class SpringTaskTest { @Scheduled(cron = "0 0 20 ? * 2-6") // cron表达式,星期和日必有一个是问号 public void dateData(){ RestTemplate restTemplate = new RestTemplate(); String template = restTemplate.getForObject("http://v.juhe.cn/todayOnhistory/queryEvent.php?key=key&date=8/10", String.class); JSONObject parseObject = JSON.parseObject(template); Object result = parseObject.get("result"); System.out.println(result); } } 就是在远程接口上加了scheduled注解。

    cron表达式详解

    Processed: 0.009, SQL: 8