Skip to content

Commit 24f05e3

Browse files
authored
Merge pull request #753 from danielgerlag/sb-fix
Service Bus LifeCycle listener to use message handler instead of session handler
2 parents 6ee54cd + 7a908e8 commit 24f05e3

File tree

2 files changed

+15
-25
lines changed

2 files changed

+15
-25
lines changed

src/providers/WorkflowCore.Providers.Azure/Services/ServiceBusLifeCycleEventHub.cs

Lines changed: 12 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -16,23 +16,20 @@ public class ServiceBusLifeCycleEventHub : ILifeCycleEventHub
1616
private readonly ITopicClient _topicClient;
1717
private readonly ILogger _logger;
1818
private readonly ISubscriptionClient _subscriptionClient;
19-
private readonly ICollection<Action<LifeCycleEvent>> _subscribers =
20-
new HashSet<Action<LifeCycleEvent>>();
21-
private readonly JsonSerializerSettings _serializerSettings =
22-
new JsonSerializerSettings
23-
{
24-
TypeNameHandling = TypeNameHandling.All,
25-
ReferenceLoopHandling = ReferenceLoopHandling.Error,
26-
};
19+
private readonly ICollection<Action<LifeCycleEvent>> _subscribers = new HashSet<Action<LifeCycleEvent>>();
20+
private readonly JsonSerializerSettings _serializerSettings = new JsonSerializerSettings
21+
{
22+
TypeNameHandling = TypeNameHandling.All,
23+
ReferenceLoopHandling = ReferenceLoopHandling.Error,
24+
};
2725

2826
public ServiceBusLifeCycleEventHub(
2927
string connectionString,
3028
string topicName,
3129
string subscriptionName,
3230
ILoggerFactory logFactory)
3331
{
34-
_subscriptionClient = new SubscriptionClient(
35-
connectionString, topicName, subscriptionName);
32+
_subscriptionClient = new SubscriptionClient(connectionString, topicName, subscriptionName);
3633
_topicClient = new TopicClient(connectionString, topicName);
3734
_logger = logFactory.CreateLogger(GetType());
3835
}
@@ -55,14 +52,12 @@ public void Subscribe(Action<LifeCycleEvent> action)
5552

5653
public Task Start()
5754
{
58-
var sessionHandlerOptions = new SessionHandlerOptions(ExceptionHandler)
55+
var messageHandlerOptions = new MessageHandlerOptions(ExceptionHandler)
5956
{
60-
MaxConcurrentSessions = 1,
6157
AutoComplete = false
6258
};
6359

64-
_subscriptionClient.RegisterSessionHandler(
65-
MessageHandler, sessionHandlerOptions);
60+
_subscriptionClient.RegisterMessageHandler(MessageHandler, messageHandlerOptions);
6661

6762
return Task.CompletedTask;
6863
}
@@ -73,10 +68,7 @@ public async Task Stop()
7368
await _subscriptionClient.CloseAsync();
7469
}
7570

76-
private async Task MessageHandler(
77-
IMessageSession messageSession,
78-
Message message,
79-
CancellationToken cancellationToken)
71+
private async Task MessageHandler(Message message, CancellationToken cancellationToken)
8072
{
8173
try
8274
{
@@ -92,15 +84,13 @@ await _subscriptionClient
9284
}
9385
catch
9486
{
95-
await _subscriptionClient
96-
.AbandonAsync(message.SystemProperties.LockToken);
87+
await _subscriptionClient.AbandonAsync(message.SystemProperties.LockToken);
9788
}
9889
}
9990

10091
private Task ExceptionHandler(ExceptionReceivedEventArgs arg)
10192
{
102-
_logger.LogWarning(
103-
default, arg.Exception, "Error on receiving events");
93+
_logger.LogWarning(default, arg.Exception, "Error on receiving events");
10494

10595
return Task.CompletedTask;
10696
}

src/providers/WorkflowCore.Providers.Azure/WorkflowCore.Providers.Azure.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,15 @@
77
- Provides distributed lock management on Workflow Core
88
- Provides Queueing support on Workflow Core</Description>
99
<PackageTags>workflow workflowcore dlm</PackageTags>
10-
<Version>3.0.0</Version>
10+
<Version>3.1.0</Version>
1111
<PackageTargetFallback Condition=" '$(TargetFramework)' == 'netstandard1.3' ">$(PackageTargetFallback);dnxcore50</PackageTargetFallback>
1212
<PackageProjectUrl>https://github.com/danielgerlag/workflow-core</PackageProjectUrl>
1313
<PackageLicenseUrl>https://github.com/danielgerlag/workflow-core/blob/master/LICENSE.md</PackageLicenseUrl>
1414
<RepositoryType>git</RepositoryType>
1515
<RepositoryUrl>https://github.com/danielgerlag/workflow-core.git</RepositoryUrl>
1616
<Authors>Daniel Gerlag</Authors>
17-
<AssemblyVersion>3.0.0.0</AssemblyVersion>
18-
<FileVersion>3.0.0.0</FileVersion>
17+
<AssemblyVersion>3.1.0.0</AssemblyVersion>
18+
<FileVersion>3.1.0.0</FileVersion>
1919
</PropertyGroup>
2020

2121
<ItemGroup>

0 commit comments

Comments
 (0)