asyn4j -- 异步方法调用框架

asyn4j 是一个java异步方法调用框架,基于消费者与生产者模式。包括了异步方法执行,异步回调执行,异步工作缓存模块.支持Spring. 

让我们写异步方法不再写很多的相关多线程代码。用asyn4j轻松搞定异步方法调用.提高程序的响应能力. 



设计图 
 

1.调用普通方法  
主方法 
Java代码   收藏代码
  1. public static void main(String[] args) {   
  2.         // 初始化异步工作服务   
  3.         AsynService asynService =  AsynServiceImpl.getService(300, 3000L, 32);   
  4.         // 启动服务   
  5.         asynService.init();   
  6.         // 异步回调对象   
  7.         AsynCallBack back = new TargetBack();   
  8.         for (int i = 0; i < 1000; i++) {   
  9.                 // 添加加异步工作- TargetService 的 test 方法 ,方法参数 asynej+ i   
  10.                 asynService.addWork(new Object[] { "asyn4j" + i },   
  11.                                 TargetService.class"test"new TargetBack());   
  12.                 //实例化目标对象再调用   
  13.                // TargetService targetService = new TargetService ();   
  14.                //asynService.addWork(new Object[] { "asyn4j" + i },   
  15.         //              targetService , "test", new TargetBack());   
  16.                   
  17.         }   
  18. }  


异步调用对象 
Java代码   收藏代码
  1. public class TargetService {   
  2.         public String test(String name){   
  3.                 System.out.println(name +" test is execute!");   
  4.                 return name;   
  5.         }   
  6.    
  7. }  



回调方法 
Java代码   收藏代码
  1. //回调需继承AsynCallBack抽象类   
  2. public class TargetBack extends AsynCallBack {   
  3.    
  4.         @Override   
  5.         public void doNotify() {   
  6.                 //输出异步方法调用返回结果   
  7.                 System.out.println(this.methodResult);   
  8.    
  9.         }   
  10.    
  11. }  


2.调用Spring Bean的异步方法
Java代码   收藏代码
  1. 调用 Spring testBean 的 myName 方法   
  2.    applicationContext.xml 加入   
  3.     <bean id="springBeanUtil" class="com.googlecode.asyn4j.spring.AsynSpringUtil">   
  4.         </bean>   
  5.    
  6.   <bean id="asynService" class="com.googlecode.asyn4j.spring.AsynServiceFactoryBean">   
  7.                    
  8.    </bean>   
  9.    
  10.    
  11.   public class TestMain {   
  12.            
  13.         public AsynService asynService;   
  14.    
  15.         public void setAsynService(AsynService asynService) {   
  16.                 this.asynService = asynService;   
  17.         }   
  18.            
  19.         public void maintest(){   
  20.                 for(int i=0;i<10000;i++){   
  21.                         asynService.addWorkWithSpring(new Object[] { "panxiuyan" + i }, "testBean""myName");   
  22.                 }   
  23.         }   
  24.    
  25. }  


3.使用异步工作缓冲器  
Java代码   收藏代码
  1. AsynService anycService = AsynServiceImpl.getService(300, 3000L, 100,   
  2.                                 100);   
  3.                 anycService.setWorkQueueFullHandler(new CacheAsynWorkHandler(100));   
  4.                 anycService.init();  

当工作队列中的工作超过300个时,异步工作将由CacheAsynWorkHandler?处理; 

4.异步工作优级
Java代码   收藏代码
  1. 默认优先级为5  ,相关API   
  2. //目标对象为指定实例   
  3. public void addWork(Object[] params, Object tagerObject, String method,AsynCallBack asynCallBack, int weight);   
  4.    
  5. //目标对象为class   
  6. public void addWork(Object[] params,Class clzss,String method,AsynCallBack asynCallBack,int weight);   
  7.    
  8. //Spring对应   
  9. public void addWorkWithSpring(Object[] params,String target,String method,AsynCallBack asynCallBack,int weight);  



看到这里感兴趣了吗?想了解更多查看如下资料或站内信联络. 

项目地址: http://asyn4j.googlecode.com  
源码SVN : http://asyn4j.googlecode.com/svn/branches/asyn4j 
WIKI:  http://code.google.com/p/asyn4j/wiki/user_guide  
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值