Skip to content

Commit

Permalink
fix sssb project
Browse files Browse the repository at this point in the history
  • Loading branch information
danielgerlag committed Apr 22, 2018
1 parent fcc8d9e commit 1fd6507
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 32 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@ namespace WorkflowCore.QueueProviders.SqlServer.Models
{
public class QueueConfig
{
public QueueConfig(string msgType, string initiatorService, string targetService, string contractName, string queueName)
public QueueConfig(string name)
{
MsgType = msgType;
InitiatorService = initiatorService;
TargetService = targetService;
ContractName = contractName;
QueueName = queueName;
MsgType = $"//workflow-core/{name}";
InitiatorService = $"//workflow-core/initiator{name}Service";
TargetService = $"//workflow-core/target{name}Service";
ContractName = $"//workflow-core/{name}Contract";
QueueName = $"//workflow-core/{name}Queue";
}

public string MsgType { get; }
Expand Down
6 changes: 4 additions & 2 deletions src/providers/WorkflowCore.QueueProviders.SqlServer/README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# SQL Server Service Broker queue provider for Workflow Core

*Thank you to Roberto Paterlini for contributing this provider*

Provides distributed worker support on [Workflow Core](../../../README.md) using [SQL Server Service Broker](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/sql-server-service-broker).

This makes it possible to have a cluster of nodes processing your workflows, along with a distributed lock manager.
Expand All @@ -14,10 +16,10 @@ PM> Install-Package WorkflowCore.QueueProviders.SqlServer -Pre

## Usage

Use the .UseSqlServerQueue extension method when building your service provider.
Use the .UseSqlServerBroker extension method when building your service provider.

```C#
services.AddWorkflow(x => x.UseSqlServerBroker(sp => new SqlServerQueueProvider(connectionString, workflowHostName, canMigrateDB));
services.AddWorkflow(x => x.UseSqlServerBroker(@"Server=.;Database=WorkflowCore;Trusted_Connection=True;", true, true));

```

Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ public static WorkflowOptions UseSqlServerBroker(this WorkflowOptions options, s
{
options.Services.AddTransient<IQueueConfigProvider, QueueConfigProvider>();
options.Services.AddTransient<ISqlCommandExecutor, SqlCommandExecutor>();
options.Services.AddTransient<ISqlServerQueueProviderMigrator, SqlServerQueueProviderMigrator>();
options.Services.AddTransient<ISqlServerQueueProviderMigrator>(sp => new SqlServerQueueProviderMigrator(connectionString, sp.GetService<IQueueConfigProvider>(), sp.GetService<ISqlCommandExecutor>()));

var sqlOptions = new SqlServerQueueProviderOptions()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,37 +10,18 @@

namespace WorkflowCore.QueueProviders.SqlServer.Services
{

/// <summary>
/// Build names for SSSB objects
/// </summary>
/// <remarks>
/// Message type and contract are global, service name and queue different for every workflow host
/// </remarks>
/// </summary>
public class QueueConfigProvider : IQueueConfigProvider
{
private readonly QueueConfig _workflowQueueConfig;
private readonly QueueConfig _eventQueueConfig;

public QueueConfigProvider()
{
var workflowMessageType = "//workflow-core/workflow";
var eventMessageType = "//workflow-core/event";

var eventContractName = "//workflow-core/eventContract";
var workflowContractName = "//workflow-core/workflowContract";

var initiatorEventServiceName = $"//workflow-core/initiatorEventService";
var targetEventServiceName = $"//workflow-core/targetEventService";

var initiatorWorkflowServiceName = $"//workflow-core/initiatorWorkflowService";
var targetWorkflowServiceName = $"//workflow-core/targetWorkflowService";

var eventQueueName = $"//workflow-core/eventQueue";
var workflowQueueName = $"//workflow-core/workflowQueue";

_workflowQueueConfig = new QueueConfig(workflowMessageType, initiatorWorkflowServiceName, targetWorkflowServiceName, workflowContractName, eventQueueName);
_eventQueueConfig = new QueueConfig(eventMessageType, initiatorEventServiceName, targetEventServiceName, eventContractName, workflowQueueName);
{
_workflowQueueConfig = new QueueConfig("workflow");
_eventQueueConfig = new QueueConfig("event");
}

public QueueConfig GetByQueue(QueueType queue)
Expand Down

0 comments on commit 1fd6507

Please sign in to comment.