首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >(设计思想)唤醒多个进程进行工作流的最佳实践

(设计思想)唤醒多个进程进行工作流的最佳实践
EN

Stack Overflow用户
提问于 2010-03-06 10:57:38
回答 2查看 239关注 0票数 0

我正在设计多进程工作流引擎。我在Websphere上部署了4个服务,并找到了如何唤醒它们的想法。目前的解决方案是

1 Quartz每分钟唤醒一次进程,如果最后一个进程已经在运行,这个进程不会重复运行(使用java的静态变量来控制)。

2流程查询最多200条记录。

2进程将创建最多50个并发线程来处理作业。

3进程休眠5秒,并检查是否有空闲的座位来处理更多。

4如果没有要处理的记录,进程将获取下一个200条记录的数据

5如果没有数据,进程将结束,等待quartz稍后唤醒

你是怎么想的?你还有别的主意吗?

EN

回答 2

Stack Overflow用户

发布于 2010-09-27 18:10:58

我不确定您的系统与工作流有何关系。术语“工作流”通常表示系统正在管理需要人工输入的任务。您正在描述一个简单的处理引擎,它从数据库表中获取工作。对于这种类型的工作,它可能会工作得很好,但不是真正的“最佳实践”。

我会建议两个改变。

  1. 您的应用程序应该有一个内部线程池来处理作业。不需要创建一个新线程来处理每个作业。使线程池可配置,以便您可以快速轻松地增加或减小其大小。
  2. 您的应用程序应该有一个队列接口(如JMS)来接收作业,而不是重复读取数据库表。
票数 1
EN

Stack Overflow用户

发布于 2010-03-06 12:12:07

“最佳实践”这句话经常被用作不考虑事情的借口。

但我要说的是,任何涉及睡眠数秒的解决方案都不是最佳实践。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2391185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档