这两天有个需求就是计时调用外部的接口,获取返回值更新数据库,
其实一直对关于线程一块的知识很排斥,可能就是因为底子比较薄弱,
对有关于这方面的东西都有点云里雾里的感觉,但是直接用人家封装好的说到底还是比较简单了。
就直接上代码好了。
@Component public class updateAISController implements ApplicationRunner { @Autowired private BoatService boatService; @Override public void run(ApplicationArguments args) throws Exception { startUpdate(); } public void startUpdate(){ //设置执行时间 Calendar calendar = Calendar.getInstance(); int year = calendar.get(Calendar.YEAR); int month = calendar.get(Calendar.MONTH); int day = calendar.get(Calendar.DAY_OF_MONTH); //设置开始时间 calendar.set(year,month,day,00,00,02); Date date = calendar.getTime(); //设置计时间隔 int period = 10*1000*60*24; Timer timer = new Timer(true); timer.schedule(new TimerTask() { @Override public void run() { //需要执行的代码 } catch (Exception e) { e.printStackTrace(); } } } },date,period); } }
这个具体想要什么效果可以根据自己的需求设置,还是很方便的,
因为我需求里面是需要进行数据库的操作的,关于调用service还有一部分的坑要填,
就在下篇博客写吧。
1234567.