浏览 4849 次
锁定老帖子 主题:关于解耦
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-09-20
如果把任务甲都放在一个同步任务中执行的话, 执行时间会过长. 现在想把耦合性低的B,C两步骤放在任务乙中执行, 除了常规的方式外(JMS/Thread Pool), 还有没有别的方式把任务甲和任务乙解耦呢? 听一个朋友介绍, 还可以采用Producer/Consumer的方式, 甲任务往Queue表插入数据, 乙任务轮询Queue表,如果有新纪录就读取并处理数据. 大家平常有用这种方式的吗? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-09-22
看不出这样”解耦“的意义,如果是调度逻辑与任务逻辑进行分离,是可以理解的,
但是A,B,C,D这四者是并列关系,都是任务逻辑的一部分,难道说这四个步骤是无序执行的? 即使分离处理,也看不出会减小执行时间. 想办法优化B,C的执行时间更有意义吧... |
|
返回顶楼 | |
发表时间:2011-09-22
"听一个朋友介绍, 还可以采用Producer/Consumer的方式, 甲任务往Queue表插入数据, 乙任务轮询Queue表,如果有新纪录就读取并处理数据. 大家平常有用这种方式的吗? "
这不就是简化版的jms实现吗?当然jms给你提供更多的功能,比如持久化(断电不会导致数据丢失),事务功能。如果不需要这些额外的功能,简单的用queue来交互数据也可以。 |
|
返回顶楼 | |