我正在设计多进程工作流引擎。我在Websphere上部署了4个服务,并找到了如何唤醒它们的想法。目前的解决方案是
1 Quartz每分钟唤醒一次进程,如果最后一个进程已经在运行,这个进程不会重复运行(使用java的静态变量来控制)。
2流程查询最多200条记录。
2进程将创建最多50个并发线程来处理作业。
3进程休眠5秒,并检查是否有空闲的座位来处理更多。
4如果没有要处理的记录,进程将获取下一个200条记录的数据
5如果没有数据,进程将结束,等待quartz稍后唤醒
你是怎么想的?你还有别的主意吗?
发布于 2010-09-27 18:10:58
我不确定您的系统与工作流有何关系。术语“工作流”通常表示系统正在管理需要人工输入的任务。您正在描述一个简单的处理引擎,它从数据库表中获取工作。对于这种类型的工作,它可能会工作得很好,但不是真正的“最佳实践”。
我会建议两个改变。
发布于 2010-03-06 12:12:07
“最佳实践”这句话经常被用作不考虑事情的借口。
但我要说的是,任何涉及睡眠数秒的解决方案都不是最佳实践。
https://stackoverflow.com/questions/2391185
复制相似问题