.net转Java学习笔记05-springBoot+@EnableScheduling 实现多任务定时任务

项目要求数据用后台管理系统统一管理,但是海康数据只保存三个月 ,只能自己写个定时任务,每十分钟往数据库存储一下
之前.net是写web.config进行配置时间,

 < appSettings >
         < add key ="cronExpr" value ="0 0 8-17/1 ? * 2-6" />
     </ appSettings >

然后创建一个普通类,实现Quartz.IJob接口

public class RetrieveAj2003T140Job : Quartz.IJob
 {
    private static DataView aj2003View;

    public RetrieveAj2003T140Job()
    {
        //
        // TODO: 在此处添加构造函数逻辑
        //
     }

   

    public void Execute(Quartz.JobExecutionContext context)
    {
        //throw new Exception("The method or operation is not implemented.");
        //你的处理逻辑,也就是“工作”
     }
}


最后在Global.asax文件中启动工作调度

 <% @ Import Namespace = " Quartz " %>

 < script runat = " server " >

     IScheduler sched;
     void Application_Start( object sender, EventArgs e)
     {
        // 在应用程序启动时运行的代码
         ISchedulerFactory sf = new Quartz.Impl.StdSchedulerFactory();
         sched = sf.GetScheduler();
         JobDetail job = new JobDetail("job1", "group1", typeof(RetrieveAj2003T140Job));

        string cronExpr = ConfigurationManager.AppSettings["cronExpr"];
         CronTrigger trigger = new CronTrigger("trigger1", "group1", "job1", "group1",cronExpr);
         sched.AddJob(job, true);
         DateTime ft = sched.ScheduleJob(trigger);
         sched.Start();
        
     }
    
     void Application_End( object sender, EventArgs e)
     {
        //   在应用程序关闭时运行的代码
        if (sched != null)
        {
             sched.Shutdown(true);
         }
     }
        

       
 </ script >

真的是繁琐的一批,现在看了下 ,其实java也是和.net相同的思路,写配置文件什么的,但是spring框架强大的封装了多任务调度,只要在springboot框架的基础上加上@EnableScheduling 即可进行任务调度。

1.肯定是新建springboot工程了,这里pom我就不粘贴了,就是之前文章粘贴上去的pom。

2.在类上加上注解

@Component
@EnableScheduling   // 1.开启定时任务
@EnableAsync        // 2.开启多线程

@Component这块补充下

@Component注解的解析
今天在写程序的时候看见一个以前没有见过的注解(@Component),在网上查找过后,经过实践,决定把它记录下来。

 1@controller 控制器(注入服务)
用于标注控制层,相当于struts中的action层
2@service 服务(注入dao)
用于标注服务层,主要用来进行业务的逻辑处理
3@repository(实现dao访问)
用于标注数据访问层,也可以说用于标注数据访问组件,即DAO组件.
4@component (把普通pojo实例化到spring容器中,相当于配置文件中的 
<bean id="" class=""/>

@EnableScheduling就是开启定时任务,同时为了项目高效的运行,需要支持高并发多任务多线程 @EnableAsync注解加上即可(java大法好)

3.开始执行任务

    @Async
    @Scheduled(cron = "0 0/5 * * * ?")

只要在方法上加上上面的注解和开始时间 即可进行多任务执行

简单的一批,具体定时器的我自己也没明白 每次都是百度的

具体的网上对Cron表达式详解有很多的文章Cron表达式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值