• 使用spring的@Async异步执行方法


    应用场景:

    1、某些耗时较长的而用户不需要等待该方法的处理结果

    2、某些耗时较长的方法,后面的程序不需要用到这个方法的处理结果时

    在spring的配置文件中加入对异步执行的支持

    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns:tx="http://www.springframework.org/schema/tx"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop" 
        xmlns:mvc="http://www.springframework.org/schema/mvc"
        xmlns:task="http://www.springframework.org/schema/task"
        xsi:schemaLocation="http://www.springframework.org/schema/beans    
        http://www.springframework.org/schema/beans/spring-beans-4.0.xsd    
        http://www.springframework.org/schema/tx    
        http://www.springframework.org/schema/tx/spring-tx-4.0.xsd   
        http://www.springframework.org/schema/context   
        http://www.springframework.org/schema/context/spring-context-4.0.xsd   
        http://www.springframework.org/schema/mvc   
        http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
        http://www.springframework.org/schema/task
        http://www.springframework.org/schema/task/spring-task-4.0.xsd">
    
        <context:annotation-config />
        <!--扫描注解 -->
        <context:component-scan base-package="com.tf" />
        <!-- 支持异步方法执行 -->
        <task:annotation-driven /> 

    使用方法

    import org.springframework.scheduling.annotation.Async;
    
    public class Test {
        
        @Async
        public static void testAsyncMethod(){
            try {
                //让程序暂停100秒,相当于执行一个很耗时的任务
                Thread.sleep(100000);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }

    调用方法

    public static void main(String[] args) {
        Test.testAsyncMethod();
        System.out.println("我已经执行了!");
    }
  • 相关阅读:
    磁盘IO性能监控(Linux 和 Windows)
    cacti监控linux和windows磁盘IO
    如何重新划分linux分区大小
    OCX控件打包成CAB并实现数字签名过程
    手把手教你用CAB发布OCX的简单办法
    WebLogic 11g重置用户密码
    rxswift的双向绑定
    投资的三个层次:投资的道与术--投资的一级算法
    《DSL》笔记一、什么是DSL(转)
    编程语言与世界观
  • 原文地址:https://www.cnblogs.com/yangzhilong/p/3725071.html
Copyright © 2020-2023  润新知