我应该创建使用Workflow Foundation建模的长时间运行的线程吗?

时间:2013-03-06 19:15:33

标签: c# .net windows iis workflow-foundation-4

我所工作的公司正在考虑采用和实施IIS中托管的Workflow Foundation来处理数据。我们仍在设计我们的问题域,但有人担心长时间运行的线程在IIS内部并不理想。以下是我们正在做的一些假设,因为Workflow仍然是我们小组的新技术:

我们正在区分“长时间运行的进程”和“长时间运行的工作流”,其中长时间运行的进程正在主动消耗CPU,而长时间运行的工作流只是持续了不确定的时间,等待额外的请求完成它的工作。

我的问题是:创建一个长时间运行的线程作为IIS中托管的Window工作流的一部分是一个好习惯,还是应该通过传统的Windows服务在IIS之外实现长时间运行的进程? /强>

1 个答案:

答案 0 :(得分:1)

使用AppFabric简单地保留你的循环(我认为它必须是一个循环,因为否则当空闲时将释放一个接收或延迟,因此不会发生长时间运行的进程),启用实例控制并对Abandon的未处理异常设置操作(它将WF实例恢复到最后一个持久点。)

在应用程序池中,禁用回收,快速失败等。无论是否良好实践取决于许多事情,例如部署问题,如果您想使用wcf调用与进程交互,如果您想轻松个人而言,我不喜欢Windows服务的麻烦,我认为你总是要处理意外的进程终止,所以为什么不假设它会发生并以安全的持久点进入IIS路由? / p>