繁体   English   中英

MS CRM递归工作流程和性能

[英]MS CRM recursive workflow and performance

我即将在CRM中编写一个每天都在调用自己的工作流程。 这是一个递归工作流程。

它将每天运行50万个实体,并且如果在过去3天内没有上升,则会使记录失效。

我担心性能还有其他人这样做过。

我没有亲自实现这样的任何东西,但这是在异步服务必须跟踪的数据库中漂浮的500,000条记录,这将对您的硬件征税。 此外,CRM还会跟踪递归工作流实例。 我没有在我面前的确切规格,但如果工作流在特定时间范围内调用自己一定次数,CRM将终止工作流程。

您是否可以编写一个控制台应用程序,向Crm服务部门询问三天内未更新的记录,然后停用它们? 每天一次作为计划任务运行它,然后您的CRM系统没有跟踪所有正在运行的工作流实例的负担。

编辑:啊,我现在看到你可能一直在想一个在所有记录上运行的工作流,而不是在每条记录上运行的工作流。 如果你走这条路线,benjynito的建议是有道理的,尽管我仍然认为计划任务比使用工作流程更合适。

您需要确保您的工作流程在非高峰时段运行。 假设你有一个内部部署安装,你应该能够逃脱。 如果您正在使用托管实例,则可能会担心一个组织正在运行工作流,而另一个组织正在使用该系统。 如有必要,请使用超时和可能的自定义工作流活动,以将开始时间强制为特定时间段。

我假设你在确定哪些记录要停用时会尽可能高效。 (即查询表达式只会带回您将要停用的记录)。

CRM提供的内置无限循环保护不应该杀死您的工作流实例。 它在呼叫深度为8后停止,但如果一小时没有呼叫则重置为1。 因此,您每天进行一次这样的事实应该会使您在递归工作流程方面做得很好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM