java设置开始时间,定时执行任务

这两天有个需求就是计时调用外部的接口,获取返回值更新数据库,

其实一直对关于线程一块的知识很排斥,可能就是因为底子比较薄弱,

对有关于这方面的东西都有点云里雾里的感觉,但是直接用人家封装好的说到底还是比较简单了。

就直接上代码好了。

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