我在我的项目中使用windows workflow 4.0版本来管理工作流。在系统中创建了一个项目,其中有100个文档要由用户审批,每个文档都应该遵循相同的工作流程。对于100个文档,文档处理是并行的。任何完成都可以转到下一个工作流程步骤。例如:文档创建-发送审核-审核-批准。
现在我正在为100个文档创建100个实例。但当文档数量显著增加(例如: 10000个文档)时,我不确定性能如何。此外,可以在任何给定的时间点在系统中创建多个项目。
有没有更好的方法来处理这种情况?
该应用程序基于ASP.Net并运行IIS。
发布于 2011-12-20 10:56:47
您的工作流程步骤(文档创建-发送审查-审核-批准)听起来像是涉及到人类交互,这意味着它们将按照人类的时间尺度进行。最少几分钟,更可能是几小时或几天。Workflow 4.0在设计时就考虑到了这个用例,因为不活跃的实例将被持久化到您的数据库存储中。扩展到数千个实例的10多个应该不是问题。
发布于 2011-12-16 23:23:14
您可以在批处理过程中操作项目,也可以实时操作项目。要考虑的问题是该过程需要多实时。与每秒100-1000 WF的开销相比,每分钟(接近实时)执行一次批处理工作流是否足够?
您肯定需要考虑设计的开销(实时可伸缩性将是一个问题),因此,如果您的数据量应该显著增加,您可能需要重新考虑您拥有的实时方法。我的目标是一种批处理方法,以预先配置的频率轮询,并使用DelayActivity。
发布于 2012-03-14 01:25:32
我不能帮助您优化您的场景,但是您可以首先缓存活动(而不是每次加载xaml并创建实例),然后通过正确确定何时卸载内存中的实例来优化性能。
https://stackoverflow.com/questions/8534981
复制相似问题