Fix distributed lock extensions
This commit is contained in:
parent
a3e7b1e023
commit
52cd21d0ff
|
|
@ -8,15 +8,14 @@ namespace Elsa
|
|||
{
|
||||
public class DistributedLockingOptionsBuilder
|
||||
{
|
||||
public DistributedLockingOptionsBuilder(ElsaOptionsBuilder elsaOptions)
|
||||
public DistributedLockingOptionsBuilder(ElsaOptionsBuilder elsaOptionsBuilder) => ElsaOptionsBuilder = elsaOptionsBuilder;
|
||||
public ElsaOptionsBuilder ElsaOptionsBuilder { get; }
|
||||
public IServiceCollection Services => ElsaOptionsBuilder.Services;
|
||||
|
||||
public DistributedLockingOptionsBuilder UseProviderFactory(Func<IServiceProvider, Func<string, IDistributedLock>> factory)
|
||||
{
|
||||
ElsaOptions = elsaOptions;
|
||||
DistributedLockProviderFactory = sp => name => new FileDistributedLock(new DirectoryInfo(Environment.CurrentDirectory), name);
|
||||
ElsaOptionsBuilder.ElsaOptions.DistributedLockingOptions.DistributedLockProviderFactory = factory;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ElsaOptionsBuilder ElsaOptions { get; }
|
||||
public IServiceCollection Services => ElsaOptions.Services;
|
||||
|
||||
public Func<IServiceProvider, Func<string, IDistributedLock>> DistributedLockProviderFactory { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
@ -50,7 +50,7 @@ namespace Elsa
|
|||
public IList<Type> WorkflowTypes { get; } = new List<Type>();
|
||||
public IList<Type> MessageTypes { get; } = new List<Type>();
|
||||
public ServiceBusOptions ServiceBusOptions { get; } = new();
|
||||
public DistributedLockingOptions DistributedLockingOptions { get; }
|
||||
public DistributedLockingOptions DistributedLockingOptions { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The amount of time to wait before giving up on trying to acquire a lock.
|
||||
|
|
|
|||
|
|
@ -7,9 +7,9 @@ namespace Elsa
|
|||
{
|
||||
public static class DistributedLockingOptionsExtensions
|
||||
{
|
||||
public static DistributedLockingOptions UseSqlServerLockProvider(this DistributedLockingOptions options, Uri blobContainerUrl)
|
||||
public static DistributedLockingOptionsBuilder UseSqlServerLockProvider(this DistributedLockingOptionsBuilder options, Uri blobContainerUrl)
|
||||
{
|
||||
options.DistributedLockProviderFactory = sp => CreateAzureDistributedLockFactory(sp, blobContainerUrl);
|
||||
options.UseProviderFactory(sp => CreateAzureDistributedLockFactory(sp, blobContainerUrl));
|
||||
return options;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ namespace Elsa
|
|||
.UseStackExchangeConnectionMultiplexer(connectionString)
|
||||
.UseRedLockFactory();
|
||||
|
||||
options.DistributedLockProviderFactory = CreateRedisDistributedLockFactory;
|
||||
options.UseProviderFactory(CreateRedisDistributedLockFactory);
|
||||
|
||||
return options;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,9 +4,9 @@ namespace Elsa
|
|||
{
|
||||
public static class DistributedLockingOptionsExtensions
|
||||
{
|
||||
public static DistributedLockingOptions UseSqlServerLockProvider(this DistributedLockingOptions options, string connectionString)
|
||||
public static DistributedLockingOptionsBuilder UseSqlServerLockProvider(this DistributedLockingOptionsBuilder options, string connectionString)
|
||||
{
|
||||
options.DistributedLockProviderFactory = sp => name => new SqlDistributedLock(name, connectionString);
|
||||
options.UseProviderFactory(sp => name => new SqlDistributedLock(name, connectionString));
|
||||
return options;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue