From fb98a2157cf65bd29a990ae6bf43e4f354443ae8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ognjen=20Kati=C4=87?= <44910579+ognjenkatic@users.noreply.github.com> Date: Thu, 26 Oct 2023 10:25:55 +0200 Subject: [PATCH 1/5] bump versions --- src/ConductorSharp.Client/ConductorSharp.Client.csproj | 2 +- src/ConductorSharp.Engine/ConductorSharp.Engine.csproj | 2 +- src/ConductorSharp.Patterns/ConductorSharp.Patterns.csproj | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ConductorSharp.Client/ConductorSharp.Client.csproj b/src/ConductorSharp.Client/ConductorSharp.Client.csproj index 8acd12a6..92aab941 100644 --- a/src/ConductorSharp.Client/ConductorSharp.Client.csproj +++ b/src/ConductorSharp.Client/ConductorSharp.Client.csproj @@ -6,7 +6,7 @@ Codaxy Codaxy ConductorSharp.Client - 2.3.0 + 2.3.1 Client library for Netflix Conductor, with some additional quality of life features. https://github.com/codaxy/conductor-sharp netflix;conductor diff --git a/src/ConductorSharp.Engine/ConductorSharp.Engine.csproj b/src/ConductorSharp.Engine/ConductorSharp.Engine.csproj index e70a043d..c9c47d0b 100644 --- a/src/ConductorSharp.Engine/ConductorSharp.Engine.csproj +++ b/src/ConductorSharp.Engine/ConductorSharp.Engine.csproj @@ -6,7 +6,7 @@ Codaxy Codaxy ConductorSharp.Engine - 2.3.0 + 2.3.1 Client library for Netflix Conductor, with some additional quality of life features. https://github.com/codaxy/conductor-sharp netflix;conductor diff --git a/src/ConductorSharp.Patterns/ConductorSharp.Patterns.csproj b/src/ConductorSharp.Patterns/ConductorSharp.Patterns.csproj index ecef241b..405cee0e 100644 --- a/src/ConductorSharp.Patterns/ConductorSharp.Patterns.csproj +++ b/src/ConductorSharp.Patterns/ConductorSharp.Patterns.csproj @@ -6,7 +6,7 @@ False Codaxy Codaxy - 2.3.0 + 2.3.1 From 15afbac1f636286d81a9aa6cc8a272acb95fcb00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bojan=20Malini=C4=87?= <94437690+boma96@users.noreply.github.com> Date: Thu, 25 Jan 2024 16:01:36 +0100 Subject: [PATCH 2/5] Improve execution manager logging and parsing (#179) * Improve exception logging, set input data to null after it is parsed * Bump version --- src/ConductorSharp.Client/ConductorSharp.Client.csproj | 2 +- src/ConductorSharp.Engine/ConductorSharp.Engine.csproj | 2 +- src/ConductorSharp.Engine/ExecutionManager.cs | 8 ++++++-- .../ConductorSharp.Patterns.csproj | 2 +- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/ConductorSharp.Client/ConductorSharp.Client.csproj b/src/ConductorSharp.Client/ConductorSharp.Client.csproj index 92aab941..e36a6b08 100644 --- a/src/ConductorSharp.Client/ConductorSharp.Client.csproj +++ b/src/ConductorSharp.Client/ConductorSharp.Client.csproj @@ -6,7 +6,7 @@ Codaxy Codaxy ConductorSharp.Client - 2.3.1 + 2.4.0 Client library for Netflix Conductor, with some additional quality of life features. https://github.com/codaxy/conductor-sharp netflix;conductor diff --git a/src/ConductorSharp.Engine/ConductorSharp.Engine.csproj b/src/ConductorSharp.Engine/ConductorSharp.Engine.csproj index c9c47d0b..693cd6f3 100644 --- a/src/ConductorSharp.Engine/ConductorSharp.Engine.csproj +++ b/src/ConductorSharp.Engine/ConductorSharp.Engine.csproj @@ -6,7 +6,7 @@ Codaxy Codaxy ConductorSharp.Engine - 2.3.1 + 2.4.0 Client library for Netflix Conductor, with some additional quality of life features. https://github.com/codaxy/conductor-sharp netflix;conductor diff --git a/src/ConductorSharp.Engine/ExecutionManager.cs b/src/ConductorSharp.Engine/ExecutionManager.cs index 61d4a197..1db730d8 100644 --- a/src/ConductorSharp.Engine/ExecutionManager.cs +++ b/src/ConductorSharp.Engine/ExecutionManager.cs @@ -118,6 +118,10 @@ private async Task PollAndHandle(TaskToWorker scheduledWorker, CancellationToken var inputType = GetInputType(scheduledWorker.TaskType); var inputData = pollResponse.InputData.ToObject(inputType, ConductorConstants.IoJsonSerializer); + // Poll response data can be huge (if read from external storage) + // We can save memory by not holding reference to pollResponse.InputData after it is parsed + pollResponse.InputData = null; + using var scope = _lifetimeScope.BeginLifetimeScope(); var context = scope.ResolveOptional(); @@ -141,8 +145,8 @@ private async Task PollAndHandle(TaskToWorker scheduledWorker, CancellationToken catch (Exception exception) { _logger.LogError( - "{error} while executing {task} as part of {workflow} with id {workflowId}", - exception.Message, + "{@Exception} while executing {Task} as part of {Workflow} with id {WorkflowId}", + exception, pollResponse.TaskDefName, pollResponse.WorkflowType, pollResponse.WorkflowInstanceId diff --git a/src/ConductorSharp.Patterns/ConductorSharp.Patterns.csproj b/src/ConductorSharp.Patterns/ConductorSharp.Patterns.csproj index 405cee0e..6b03c307 100644 --- a/src/ConductorSharp.Patterns/ConductorSharp.Patterns.csproj +++ b/src/ConductorSharp.Patterns/ConductorSharp.Patterns.csproj @@ -6,7 +6,7 @@ False Codaxy Codaxy - 2.3.1 + 2.4.0 From 464f0616d96c88dc689695e8e56e6b1677570757 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bojan=20Malini=C4=87?= <94437690+boma96@users.noreply.github.com> Date: Wed, 3 Apr 2024 12:36:52 +0200 Subject: [PATCH 3/5] Handle TaskCanceledException (#182) Handle task canceled exception --- .../Service/WorkflowEngineBackgroundService.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/ConductorSharp.Engine/Service/WorkflowEngineBackgroundService.cs b/src/ConductorSharp.Engine/Service/WorkflowEngineBackgroundService.cs index 9470f55a..a6485886 100644 --- a/src/ConductorSharp.Engine/Service/WorkflowEngineBackgroundService.cs +++ b/src/ConductorSharp.Engine/Service/WorkflowEngineBackgroundService.cs @@ -57,6 +57,10 @@ private async Task RunAsync(CancellationToken cancellationToken) await _healthService.SetExecutionManagerRunning(cancellationToken); await _executionManager.StartAsync(cancellationToken); } + catch (TaskCanceledException) + { + _logger.LogInformation("Stopping ConductorSharp background service"); + } catch (Exception exception) { await _healthService.UnsetExecutionManagerRunning(); From bf31b3756347c1e0ec0cd8cead81fabd79daa875 Mon Sep 17 00:00:00 2001 From: "bojan.malinic" Date: Mon, 25 Nov 2024 15:56:25 +0100 Subject: [PATCH 4/5] Make some properties nullable --- src/ConductorSharp.Client/ConductorSharp.Client.csproj | 2 +- src/ConductorSharp.Client/Model/Common/TaskDefinition.cs | 4 ++-- src/ConductorSharp.Client/Model/Common/WorkflowDefinition.cs | 4 ++-- src/ConductorSharp.Engine/Builders/TaskDefinitionBuilder.cs | 2 ++ .../Builders/WorkflowDefinitionBuilder.cs | 4 +++- src/ConductorSharp.Engine/ConductorSharp.Engine.csproj | 2 +- src/ConductorSharp.Patterns/ConductorSharp.Patterns.csproj | 2 +- 7 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/ConductorSharp.Client/ConductorSharp.Client.csproj b/src/ConductorSharp.Client/ConductorSharp.Client.csproj index e36a6b08..fd97aaeb 100644 --- a/src/ConductorSharp.Client/ConductorSharp.Client.csproj +++ b/src/ConductorSharp.Client/ConductorSharp.Client.csproj @@ -6,7 +6,7 @@ Codaxy Codaxy ConductorSharp.Client - 2.4.0 + 2.4.1 Client library for Netflix Conductor, with some additional quality of life features. https://github.com/codaxy/conductor-sharp netflix;conductor diff --git a/src/ConductorSharp.Client/Model/Common/TaskDefinition.cs b/src/ConductorSharp.Client/Model/Common/TaskDefinition.cs index 1fbcaafa..78134158 100644 --- a/src/ConductorSharp.Client/Model/Common/TaskDefinition.cs +++ b/src/ConductorSharp.Client/Model/Common/TaskDefinition.cs @@ -10,10 +10,10 @@ public class TaskDefinition public string OwnerApp { get; set; } = "test@test.local"; [JsonProperty("createTime")] - public long CreateTime { get; set; } + public long? CreateTime { get; set; } [JsonProperty("updateTime")] - public long UpdateTime { get; set; } + public long? UpdateTime { get; set; } [JsonProperty("createdBy")] public string CreatedBy { get; set; } diff --git a/src/ConductorSharp.Client/Model/Common/WorkflowDefinition.cs b/src/ConductorSharp.Client/Model/Common/WorkflowDefinition.cs index 64081597..586d29e6 100644 --- a/src/ConductorSharp.Client/Model/Common/WorkflowDefinition.cs +++ b/src/ConductorSharp.Client/Model/Common/WorkflowDefinition.cs @@ -157,10 +157,10 @@ public JObject InputParameters public string OwnerApp { get; set; } [JsonProperty("createTime")] - public long CreateTime { get; set; } + public long? CreateTime { get; set; } [JsonProperty("updateTime")] - public long UpdateTime { get; set; } + public long? UpdateTime { get; set; } [JsonProperty("createdBy")] public string CreatedBy { get; set; } diff --git a/src/ConductorSharp.Engine/Builders/TaskDefinitionBuilder.cs b/src/ConductorSharp.Engine/Builders/TaskDefinitionBuilder.cs index 132b0ddb..198971ee 100644 --- a/src/ConductorSharp.Engine/Builders/TaskDefinitionBuilder.cs +++ b/src/ConductorSharp.Engine/Builders/TaskDefinitionBuilder.cs @@ -69,6 +69,8 @@ public TaskDefinition Build(Type taskType, Action updateO UpdatedBy = options.UpdatedBy, InputTemplate = options.InputTemplate, ExecutionNameSpace = options.ExecutionNameSpace, + CreateTime = 0, + UpdateTime = 0 }; } diff --git a/src/ConductorSharp.Engine/Builders/WorkflowDefinitionBuilder.cs b/src/ConductorSharp.Engine/Builders/WorkflowDefinitionBuilder.cs index c95bf07b..ae5439ba 100644 --- a/src/ConductorSharp.Engine/Builders/WorkflowDefinitionBuilder.cs +++ b/src/ConductorSharp.Engine/Builders/WorkflowDefinitionBuilder.cs @@ -135,7 +135,9 @@ public WorkflowDefinition Build() OutputParameters = BuildContext.Outputs, OwnerApp = BuildContext.WorkflowOptions.OwnerApp, OwnerEmail = BuildContext.WorkflowOptions.OwnerEmail, - Version = BuildContext.WorkflowOptions.Version + Version = BuildContext.WorkflowOptions.Version, + CreateTime = 0, + UpdateTime = 0 }; } diff --git a/src/ConductorSharp.Engine/ConductorSharp.Engine.csproj b/src/ConductorSharp.Engine/ConductorSharp.Engine.csproj index 693cd6f3..b9f97ac1 100644 --- a/src/ConductorSharp.Engine/ConductorSharp.Engine.csproj +++ b/src/ConductorSharp.Engine/ConductorSharp.Engine.csproj @@ -6,7 +6,7 @@ Codaxy Codaxy ConductorSharp.Engine - 2.4.0 + 2.4.1 Client library for Netflix Conductor, with some additional quality of life features. https://github.com/codaxy/conductor-sharp netflix;conductor diff --git a/src/ConductorSharp.Patterns/ConductorSharp.Patterns.csproj b/src/ConductorSharp.Patterns/ConductorSharp.Patterns.csproj index 6b03c307..83709b08 100644 --- a/src/ConductorSharp.Patterns/ConductorSharp.Patterns.csproj +++ b/src/ConductorSharp.Patterns/ConductorSharp.Patterns.csproj @@ -6,7 +6,7 @@ False Codaxy Codaxy - 2.4.0 + 2.4.1 From 90cd5c2c740ab839708691ac1f401edb5ec3ff19 Mon Sep 17 00:00:00 2001 From: "bojan.malinic" Date: Tue, 3 Dec 2024 13:38:27 +0100 Subject: [PATCH 5/5] Make concurrent exec limit nullable --- src/ConductorSharp.Client/ConductorSharp.Client.csproj | 2 +- src/ConductorSharp.Client/Model/Common/TaskDefinition.cs | 2 +- src/ConductorSharp.Engine/ConductorSharp.Engine.csproj | 2 +- src/ConductorSharp.Patterns/ConductorSharp.Patterns.csproj | 2 +- src/ConductorSharp.Toolkit/ConductorSharp.Toolkit.csproj | 2 +- src/ConductorSharp.Toolkit/Program.cs | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/ConductorSharp.Client/ConductorSharp.Client.csproj b/src/ConductorSharp.Client/ConductorSharp.Client.csproj index fd97aaeb..70949f33 100644 --- a/src/ConductorSharp.Client/ConductorSharp.Client.csproj +++ b/src/ConductorSharp.Client/ConductorSharp.Client.csproj @@ -6,7 +6,7 @@ Codaxy Codaxy ConductorSharp.Client - 2.4.1 + 2.4.2 Client library for Netflix Conductor, with some additional quality of life features. https://github.com/codaxy/conductor-sharp netflix;conductor diff --git a/src/ConductorSharp.Client/Model/Common/TaskDefinition.cs b/src/ConductorSharp.Client/Model/Common/TaskDefinition.cs index 78134158..c8ab7987 100644 --- a/src/ConductorSharp.Client/Model/Common/TaskDefinition.cs +++ b/src/ConductorSharp.Client/Model/Common/TaskDefinition.cs @@ -74,7 +74,7 @@ public class TaskDefinition /// Number of tasks that can be executed at any given time. /// Optional [JsonProperty("concurrentExecLimit")] - public int ConcurrentExecLimit { get; set; } + public int? ConcurrentExecLimit { get; set; } /// Allows to define default values, which can be overridden by values provided in Workflow. [JsonProperty("inputTemplate")] diff --git a/src/ConductorSharp.Engine/ConductorSharp.Engine.csproj b/src/ConductorSharp.Engine/ConductorSharp.Engine.csproj index b9f97ac1..e9fe8329 100644 --- a/src/ConductorSharp.Engine/ConductorSharp.Engine.csproj +++ b/src/ConductorSharp.Engine/ConductorSharp.Engine.csproj @@ -6,7 +6,7 @@ Codaxy Codaxy ConductorSharp.Engine - 2.4.1 + 2.4.2 Client library for Netflix Conductor, with some additional quality of life features. https://github.com/codaxy/conductor-sharp netflix;conductor diff --git a/src/ConductorSharp.Patterns/ConductorSharp.Patterns.csproj b/src/ConductorSharp.Patterns/ConductorSharp.Patterns.csproj index 83709b08..e055e81f 100644 --- a/src/ConductorSharp.Patterns/ConductorSharp.Patterns.csproj +++ b/src/ConductorSharp.Patterns/ConductorSharp.Patterns.csproj @@ -6,7 +6,7 @@ False Codaxy Codaxy - 2.4.1 + 2.4.2 diff --git a/src/ConductorSharp.Toolkit/ConductorSharp.Toolkit.csproj b/src/ConductorSharp.Toolkit/ConductorSharp.Toolkit.csproj index 8022a1d4..59c14b0b 100644 --- a/src/ConductorSharp.Toolkit/ConductorSharp.Toolkit.csproj +++ b/src/ConductorSharp.Toolkit/ConductorSharp.Toolkit.csproj @@ -7,7 +7,7 @@ disable true dotnet-conductorsharp - 2.0.0 + 2.0.1 diff --git a/src/ConductorSharp.Toolkit/Program.cs b/src/ConductorSharp.Toolkit/Program.cs index 61729489..2001e089 100644 --- a/src/ConductorSharp.Toolkit/Program.cs +++ b/src/ConductorSharp.Toolkit/Program.cs @@ -16,7 +16,7 @@ namespace ConductorSharp.Toolkit { class Program { - public const string Version = "2.0.0"; + public const string Version = "2.0.1"; public async static Task Main(string[] args) {