zoukankan      html  css  js  c++  java
  • Springboot之异步任务和任务调度

    1、异步任务

      异步方法调用是相当于多个线程执行,不需要等待上一行代码的执行结果。

      使用方法:

        启动类上面使用@EnableAsync注释,表示开启异步方法调用;

        方法上使用@Async注解,来表示这是个异步方法;

        Future  用于接收异步方法的返回类型;

      • get()  获取异步返回值
      • isDone()  判断异步方法是否完成
      • isCancelled  是否取消
      • cancel()  取消
      @Async
        public Future<String> sayHello(){
            try {
                Thread.sleep(3000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println("你好啊啊...");
            return new AsyncResult<String>("我任务返程了");
        }

    2、任务调度

      使用方法:

         启动类上面使用@EnableScheduling注释,表示开启定时方法调用;

         方法上使用@Scheduled注解,来表示这是个定时方法;@Scheduled中的cron属性,用于定义时间点;

    //  秒 分 时  天  月 周几
        @Scheduled(cron = "3 * * * * ?")
        public void sayHello(){
            System.out.println("早上好");
        }

        cron表达式说明:

    域名 可取值 可取符号(仅列部分常用)
    秒域 0~59的整数   *    -    ,    /
    分域 0~59的整数   *    -    ,    /
    时域 0~23的整数   *    -    ,    /
    日域 1~31的整数   *    -    ,    /    ?    L W
    月域 1~12的整数或JAN~DEC   *    -    ,    /
    周域 1~7的整数或SUN~SAT   *    -    ,    /    ?    L    # 

        符号的意义:

          * 表示可以匹配该域的所有值;

          ?在cron表达式中必须出现且只能出现1次,用在日域或周域上(二选一),表示不确定值、不限制值;

          - 表示匹配该域上的一个范围;

          , 表示枚举值;

          / 表示起始时间和间隔时间;

          # 只能用于周域上,#后面的数字表示第几周,如果不存在这个周的值,则不执行;

          L 只能用于日域或周域,用于日域时表示当月最后一天,用于周域如果前面不加数字表示周六,加数字表示最后一个周值;

          W 工作日;
        

  • 相关阅读:
    归并排序java实现
    linux中压缩与备份命令总结
    Debug查看Struts2中ExceptionMappingInterceptor拦截器怎么把ExceptionHolder放入值栈中,以及理解拦截器的工作原理。。。
    Linux文件与目录管理命令小结
    (转)常用的正则表达式
    Neither BindingResult nor plain target obiect available as request attribute
    sping mvc访问.js,.css,.img等静态文件
    spring security学习(二)
    初始spring security(一)
    在myeclipse中使用maven前常见错误及解决办法
  • 原文地址:https://www.cnblogs.com/xp2h/p/12410217.html
Copyright © 2011-2022 走看看