Fix rebus message type queue mixup
This commit is contained in:
parent
cc70e4fb2f
commit
a0ade4a984
|
|
@ -15,6 +15,7 @@ using Microsoft.Extensions.DependencyInjection;
|
|||
using Newtonsoft.Json;
|
||||
using NodaTime;
|
||||
using Rebus.Persistence.InMem;
|
||||
using Rebus.Routing.TypeBased;
|
||||
using Rebus.Transport.InMem;
|
||||
using Storage.Net;
|
||||
using Storage.Net.Blobs;
|
||||
|
|
@ -25,12 +26,15 @@ namespace Elsa
|
|||
|
||||
public class ElsaOptions
|
||||
{
|
||||
public static string FormatChannelQueueName<TMessage>(string? channel = default)
|
||||
public static string FormatChannelQueueName<TMessage>(string channel) => FormatChannelQueueName(typeof(TMessage), channel);
|
||||
|
||||
public static string FormatChannelQueueName(Type messageType, string channel)
|
||||
{
|
||||
var queue = !string.IsNullOrWhiteSpace(channel) ? $"{typeof(TMessage).Name}{channel}" : typeof(TMessage).Name;
|
||||
|
||||
return queue.Dehumanize().Underscore().Dasherize();
|
||||
var queue = !string.IsNullOrWhiteSpace(channel) ? $"{messageType.Name}{channel}" : messageType.Name;
|
||||
return FormatQueueName(queue);
|
||||
}
|
||||
|
||||
public static string FormatQueueName(string queue) => queue.Dehumanize().Underscore().Dasherize();
|
||||
|
||||
internal ElsaOptions()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ namespace Elsa.Services.Dispatch
|
|||
}
|
||||
|
||||
var channel = _workflowChannelOptions.GetChannelOrDefault(workflowBlueprint.Channel);
|
||||
var queue = ElsaOptions.FormatChannelQueueName<ExecuteWorkflowInstanceRequest>(channel);
|
||||
var queue = ElsaOptions.FormatChannelQueueName<ExecuteWorkflowDefinitionRequest>(channel);
|
||||
await _commandSender.SendAsync(request, queue, default, cancellationToken);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,19 +33,19 @@ namespace Elsa.Services.Messaging
|
|||
public async Task<IBus> GetServiceBusAsync(Type messageType, string? queueName = default, CancellationToken cancellationToken = default)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(queueName))
|
||||
queueName = messageType.Name;
|
||||
queueName = ElsaOptions.FormatChannelQueueName(messageType, _elsaOptions.WorkflowChannelOptions.Default);
|
||||
|
||||
var formattedQueueName = FormatQueueName(queueName);
|
||||
var prefixedQueueName = PrefixQueueName(queueName);
|
||||
await _semaphore.WaitAsync(cancellationToken);
|
||||
|
||||
try
|
||||
{
|
||||
if (_serviceBuses.TryGetValue(formattedQueueName, out var bus))
|
||||
if (_serviceBuses.TryGetValue(prefixedQueueName, out var bus))
|
||||
return bus;
|
||||
|
||||
var configurer = Configure.With(_handlerActivator);
|
||||
var map = new Dictionary<Type, string> { [messageType] = formattedQueueName };
|
||||
var configureContext = new ServiceBusEndpointConfigurationContext(configurer, formattedQueueName, map, _serviceProvider);
|
||||
var map = new Dictionary<Type, string> { [messageType] = prefixedQueueName };
|
||||
var configureContext = new ServiceBusEndpointConfigurationContext(configurer, prefixedQueueName, map, _serviceProvider);
|
||||
|
||||
// Default options.
|
||||
configurer
|
||||
|
|
@ -58,7 +58,7 @@ namespace Elsa.Services.Messaging
|
|||
_elsaOptions.ConfigureServiceBusEndpoint(configureContext);
|
||||
|
||||
var newBus = configurer.Start();
|
||||
_serviceBuses.TryAdd(formattedQueueName, newBus);
|
||||
_serviceBuses.TryAdd(prefixedQueueName, newBus);
|
||||
|
||||
return newBus;
|
||||
}
|
||||
|
|
@ -68,6 +68,6 @@ namespace Elsa.Services.Messaging
|
|||
}
|
||||
}
|
||||
|
||||
private string FormatQueueName(string name) => $"{_elsaOptions.ServiceBusOptions.QueuePrefix}{name}";
|
||||
private string PrefixQueueName(string name) => $"{_elsaOptions.ServiceBusOptions.QueuePrefix}{name}";
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@elsa-workflows/elsa-workflows-studio",
|
||||
"version": "2.1.0",
|
||||
"version": "2.1.2",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
|
|
|||
|
|
@ -6,18 +6,18 @@
|
|||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="System.Text.Encodings.Web" Version="5.0.1"/>
|
||||
<PackageReference Include="System.Text.Encodings.Web" Version="5.0.1" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\..\..\activities\Elsa.Activities.Email\Elsa.Activities.Email.csproj"/>
|
||||
<ProjectReference Include="..\..\..\..\activities\Elsa.Activities.Http\Elsa.Activities.Http.csproj"/>
|
||||
<ProjectReference Include="..\..\..\..\activities\Elsa.Activities.Temporal.Quartz\Elsa.Activities.Temporal.Quartz.csproj"/>
|
||||
<ProjectReference Include="..\..\..\..\core\Elsa\Elsa.csproj"/>
|
||||
<ProjectReference Include="..\..\..\..\designer\bindings\aspnet\Elsa.Designer.Components.Web\Elsa.Designer.Components.Web.csproj"/>
|
||||
<ProjectReference Include="..\..\..\..\persistence\Elsa.Persistence.EntityFramework\Elsa.Persistence.EntityFramework.Sqlite\Elsa.Persistence.EntityFramework.Sqlite.csproj"/>
|
||||
<ProjectReference Include="..\..\..\..\server\Elsa.Server.Api\Elsa.Server.Api.csproj"/>
|
||||
<ProjectReference Include="..\..\..\persistence\Elsa.Samples.Persistence.EntityFramework\Elsa.Samples.Persistence.EntityFramework.csproj"/>
|
||||
<ProjectReference Include="..\..\..\..\activities\Elsa.Activities.Email\Elsa.Activities.Email.csproj" />
|
||||
<ProjectReference Include="..\..\..\..\activities\Elsa.Activities.Http\Elsa.Activities.Http.csproj" />
|
||||
<ProjectReference Include="..\..\..\..\activities\Elsa.Activities.Temporal.Quartz\Elsa.Activities.Temporal.Quartz.csproj" />
|
||||
<ProjectReference Include="..\..\..\..\core\Elsa\Elsa.csproj" />
|
||||
<ProjectReference Include="..\..\..\..\designer\bindings\aspnet\Elsa.Designer.Components.Web\Elsa.Designer.Components.Web.csproj" />
|
||||
<ProjectReference Include="..\..\..\..\persistence\Elsa.Persistence.EntityFramework\Elsa.Persistence.EntityFramework.Sqlite\Elsa.Persistence.EntityFramework.Sqlite.csproj" />
|
||||
<ProjectReference Include="..\..\..\..\server\Elsa.Server.Api\Elsa.Server.Api.csproj" />
|
||||
<ProjectReference Include="..\..\..\persistence\Elsa.Samples.Persistence.EntityFramework\Elsa.Samples.Persistence.EntityFramework.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
|
|||
Loading…
Reference in a new issue