读书人

异步任务调度服务跟进度管理服务

发布时间: 2012-08-19 21:09:48 作者: rapoo

异步任务调度服务和进度管理服务
虽然被调到LTE业务组,但是做的工作还是偏向平台性质的工作,或者说是为支持具体业务的基础服务更为妥当,为了支持大量的业务请求,和本身与设备IO交互存在大量CPU空闲等原因,把原有的同步架构重构成异步架构,并提供进度服务功能,这就是我最近三周来做的事情。

异步架构,参考了Ajax的模式,InternalJob用来执行异步任务,执行结束后回调CallBack,成功,失败,超时等。内部有一个固定线程数的线程池用来调度这些任务,所有的操作都放在线程池里面做,这样可以很好控制并发数。任务在生命周期中可以发送jms消息给前台,让前台处理任务的进度信息,进度服务也可以脱离异步调度服务单独使用。

任务支持子任务,后台可以把任务分成几个任务,前台可以分为服务器端任务和客户端任务。

任务结束后采用类似GC的标记清除算法,单独的线程检测已死任务和超时任务。

工作快一年半了,通过这个Task才对事务和并发控制等有了一点点感悟,惭愧啊。。

读书人网 >软件架构设计

热点推荐