在对编排器代码进行更改时,我一直很犹豫,因为尽管我一遍又一遍地阅读了文档,但我从未100%清楚了解什么是突破性的更改,什么是非突破性更改。我担心我会破坏飞行中的编排,通常会出于谨慎而出错。
在这种情况下,我真的不想修改版本,但我不确定这是否属于更改。我目前正在编排中调用CallActitivityWithRetryAsync,并希望将值2.0设置为BackoffCoefficient。
我的问题是,设置这个值是否会破坏运行中的编排,并需要对编排功能进行版本控制,以便两者可以并行工作。
当前:
var retryOptions = new RetryOptions(TimeSpan.FromMinutes(1), 5);
await context.CallActivityWithRetryAsync("MyActivity", retryOptions, null);
所需:
var retryOptions = new RetryOptions(TimeSpan.FromMinutes(1), 5)
retryOptions.BackoffCoefficient = 2.0;
await context.CallActivityWithRetryAsync("MyActivity", retryOptions, null);
持久函数团队的Chris Gillum对此进行了分析,结果是:这取决于情况。
更改重试选项设置可能会更改编排器函数生成的历史记录。例如,如果更改重试策略导致现有实例的重试次数增加或减少,则这些实例可能会因非确定性错误而失败。
在OP要求的特定示例中,不应要求进行版本更改,因为这只是更改退避系数,不会导致最大尝试次数的任何更改。