-
Notifications
You must be signed in to change notification settings - Fork 284
Introduce worker versioning into durable functions #3095
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
src/WebJobs.Extensions.DurableTask/Options/DurableTaskOptions.cs
Outdated
Show resolved
Hide resolved
|
This problem is probably not introduced nor fixable in this PR, but I discovered an issue with orchestration rejection when testing this E2E, so I'll mention it here. I have an orchestrator like this: [Function(nameof(WaitForEventOrchestrator))]
public static async Task<string> WaitForEventOrchestrator(
[OrchestrationTrigger] TaskOrchestrationContext context)
{
context.SetCustomStatus("Waiting for Continue event...");
await context.WaitForExternalEvent<object>("Continue");
context.SetCustomStatus("Continue event received");
return context.Version;
}Versioning config in "defaultVersion": "2.0",
"versionMatchStrategy": "CurrentOrOlder",
"versionFailureStrategy": "Reject",When I start an orchestration and it gets paused waiting for an external event, as expected. Next, I shut the worker down, change
Both can be significant issues for the user in some contexts. |
f9cda9a to
15de604
Compare
|
Updated the code to handle the sub-orchestration version use case you brought up @AnatoliB. Note that this PR now also depends on this change: microsoft/durabletask-dotnet#437 So that means the dependencies are for a DurableTask.Core release and the packages in the PR above ^ |
This commit adds the worker versioning options to the base DurableTaskOptions which are read through the host.json file. This change also includes a few changes for wiring the values through as well as testing. Signed-off-by: halspang <[email protected]>
Signed-off-by: halspang <[email protected]>
881ff3f to
c44d39e
Compare
Signed-off-by: halspang <[email protected]>
c44d39e to
7b9c6a7
Compare
cgillum
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some initial feedback. Haven't gone through the whole thing again yet.
src/Worker.Extensions.DurableTask/Worker.Extensions.DurableTask.csproj
Outdated
Show resolved
Hide resolved
cgillum
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Finished reviewing. Just a couple more things...
src/Worker.Extensions.DurableTask/FunctionsOrchestrationContext.cs
Outdated
Show resolved
Hide resolved
Signed-off-by: halspang <[email protected]>
30c1cf4 to
ff16aaf
Compare
Signed-off-by: halspang <[email protected]>
This commit adds the worker versioning options to the base DurableTaskOptions which are read through the host.json file. This change also includes a few changes for wiring the values through as well as testing.
Important
This change depends on multiple external changes/new versions:
As is, the tests in this PR will fail due to the lack of appropriate references. Once those releases are made, this PR will have to be updated. However, the code/tests are all complete in their implementation and are OK to be reviewed. This just cannot be merged until that point.