gpt4 book ai didi

java - 如何调用 Controller 内的调度程序

转载 作者:行者123 更新时间:2023-12-02 13:27:13 25 4
gpt4 key购买 nike

我有一个休息 Controller ,在休息 Controller 内我想调用一个方法,该方法每 5 秒更新一次数组列表 ob 对象。我每五秒更新一次列表,以便我想使用以下命令检查请求参数之一数组列表数据。下面是我的 Controller 类

@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;



}

}

因此,在我的 Controller 中,我想每 5 秒更新一次 list2,因为每当调用 Controller 时,它都想检查 list2,然后继续返回 list1。

但是现在我的预定方法 get_list2 一次也没有被触发,并且控制台中没有打印任何内容。

感谢任何帮助。

最佳答案

@EnableScheduling 确保创建后台任务执行器。没有它,任何事情都无法安排。

示例:

@SpringBootApplication
@EnableScheduling
public class Application {

public static void main(String[] args) throws Exception {
SpringApplication.run(Application.class);
}
}

关于java - 如何调用 Controller 内的调度程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43342632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com