论坛首页 Java企业应用论坛

关于解耦

浏览 4850 次
锁定老帖子 主题:关于解耦
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-09-20  
一个任务甲有A, B, C, D四个步骤, 其中B,C执行时间过长,和A,D步骤无耦合性.
如果把任务甲都放在一个同步任务中执行的话, 执行时间会过长.

现在想把耦合性低的B,C两步骤放在任务乙中执行,
除了常规的方式外(JMS/Thread Pool), 还有没有别的方式把任务甲和任务乙解耦呢?

听一个朋友介绍, 还可以采用Producer/Consumer的方式, 甲任务往Queue表插入数据, 乙任务轮询Queue表,如果有新纪录就读取并处理数据. 大家平常有用这种方式的吗? 




   发表时间:2011-09-22  
看不出这样”解耦“的意义,如果是调度逻辑与任务逻辑进行分离,是可以理解的,
但是A,B,C,D这四者是并列关系,都是任务逻辑的一部分,难道说这四个步骤是无序执行的?

即使分离处理,也看不出会减小执行时间.
想办法优化B,C的执行时间更有意义吧...
0 请登录后投票
   发表时间:2011-09-22  
"听一个朋友介绍, 还可以采用Producer/Consumer的方式, 甲任务往Queue表插入数据, 乙任务轮询Queue表,如果有新纪录就读取并处理数据. 大家平常有用这种方式的吗?  "


这不就是简化版的jms实现吗?当然jms给你提供更多的功能,比如持久化(断电不会导致数据丢失),事务功能。如果不需要这些额外的功能,简单的用queue来交互数据也可以。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics