0
私は残りのコントローラを持っていますが、RESTコントローラの中では、5秒ごとに配列リストOBオブジェクトを更新するメソッドを呼び出す必要がありました。要求パラメータの1つをアレイリストデータでチェックしてください。 は下記だから私のコントローラでは5秒ごとに、私は私のリスト2を更新したい私のコントローラクラスコントローラ内でスケジューラを呼び出す方法
@RestController
public class HomeController {
List<Model1> list1= new ArrayList<Model1>();
List<Model2> list2= new ArrayList<Model2>();
@Autowired
@Qualifier("restTemplateapi")
private RestTemplate restTemplateapi;
@Bean
public RestTemplate restTemplateapi() {
RestTemplateBuilder builderapi = new RestTemplateBuilder();
RestTemplate buildapi = builderapi.build();
return buildapi;
}
@Scheduled(fixedRate=5000)
public void get_list2(){
list2 = Arrays.asList(restTemplatestreetapi.getForObject("http:dataurl for list2", Model2[].class));
System.out.println(list2.get(0).getStatus()+ " is the staus of the first element:");
}
@RequestMapping(value="/api",produces={MediaType.APPLICATION_JSON_VALUE},method=RequestMethod.GET)
public ResponseEntity<Map<String, Object>> getlist1(@RequestParam("lat")double lat,@RequestParam("lon") double lon,@RequestParam("id") int id){
list1=get_api(lat,lon,id);
status status_object=new status();
Map <String,List<Model1>> map1= new HashMap<String,List<Model1>>();
List<status> statuslist=new ArrayList<status>();
status_object.setCode("hi");
status_object.setMessage("good api call");
statuslist.add(status_object);
streetapilist.put("data",map1);
Map<String,List<status>> map2=new HashMap<String,List<status>>();
statusmap.put("status", map2);
Map<String, Object> combinedMap = new HashMap<String, Object>();
combinedMap.putAll(map1);
combinedMap.putAll(map2);
return new ResponseEntity<Map<String, Object>>(combinedMap,HttpStatus.OK);
}
@ResponseBody
public List<Model1> get_api(double lat,double lon,int id,String email){
List<Model1> list1 = Arrays.asList(restTemplatestreetapi.getForObject("http:dataurl for list1, Model1[].class));
return list1;
}
}
で呼び出しが、それはリスト2をチェックして、リスト1を返すに進みたいコントローラに行われるたびので。
私のスケジュールされたメソッドget_list2は一度でも起動されず、コンソールには何も印刷されません。
何か助けていただければ幸いです。
ああ、私は完全にit.Thanksをたくさん使用可能にするのを忘れ市@ –