0

在实体Hazaa实例化时启动工作流。它等待一段时间,然后创建一个新的Hazaa实例。之后,它被成功休眠。

我希望它会永远开火,创造一堆Hazaas。然而,在生育停止之前,我只得到了 15 个新的。连同我手动创建以启动工作流的原始实例,总共有 16 个实例。我已经测试了更长的延迟(最多几个小时),但行为是一致的。

那是针对在线 CRM 的。在前提下,行为相似,但总共限制为 8 个实例。

根据我发现的链接收获,CRM中有一个设置来控制迭代次数。问题是我的解决方案将主要为在线客户部署,所以除非我拥有云,否则这将是一个阻碍。

我知道它是 CRM 防止再次发生。我能做些什么呢?

目前我能想到的最好的解决方案是设置一个超级工作流,将子工作流触发 16 次。然后我需要有一个超级超级的工作流程等等。在我看来这不是吹牛的。

4

2 回答 2

2

ACorrelationToken包含一个计数器和一个一小时的“自毁”计时器。

当第一个工作流运行时,CorrelationToken会创建一个新的。计数器设置为 1,计时器设置为一小时。

当第二个工作流从第一个工作流启动时(即使是间接的,例如在您的情况下),如果其自毁计时器尚未过期CorrelationToken,则使用相同的工作流。如果有,则创建一个新的。如果没有,它会增加计数器并重置计时器。起泡,冲洗,重复。CorrelationToken

仅当计数器为 8 或更少(本地)或 16 或更少(CRM Online)时,第二个(和后续)工作流才会执行

这真正意味着在实践中,如果您的子工作流执行时间早于一小时,则CorrelationToken永远不会有机会过期,这意味着最终计数器会增加超过限制。这并不意味着您每小时最多可以执行 8 个(或 16 个)这些工作流。

听起来您已经弄清楚了大部分内容,但我想为其他读者提供背景知识。因此,要回答您的问题:如果您的设计包括间隔不到一小时执行的循环工作流程,您将需要考虑替代设计。它肯定会涉及外部流程或服务。

于 2012-12-16T01:04:56.827 回答
1

如果我对您的理解正确,听起来您正在创建一个无限循环,这就是 CRM 会终止此类工作流程的原因,否则它们将永远不会结束。在什么情况下你会停止制作更多的 Hazaa 唱片?您可以在每个新的 Hazaa 上添加一个数字字段并增加该字段,当它达到某个数字时停止工作流程。

于 2012-12-15T18:50:10.443 回答