diff --git a/Elsa.sln b/Elsa.sln
index 71c49b8a9..f8d7e567f 100644
--- a/Elsa.sln
+++ b/Elsa.sln
@@ -295,6 +295,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "providers", "providers", "{
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Providers.Redis", "src\providers\Elsa.Providers.Redis\Elsa.Providers.Redis.csproj", "{9ACA06DA-9AFE-41A2-8109-EFED8B9B14A1}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.DistributedLocking.Redis", "src\locking\Elsa.DistributedLocking.Redis\Elsa.DistributedLocking.Redis.csproj", "{D1644D32-AA51-4D10-942E-F2722DB963B4}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -689,6 +691,10 @@ Global
{9ACA06DA-9AFE-41A2-8109-EFED8B9B14A1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9ACA06DA-9AFE-41A2-8109-EFED8B9B14A1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9ACA06DA-9AFE-41A2-8109-EFED8B9B14A1}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D1644D32-AA51-4D10-942E-F2722DB963B4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D1644D32-AA51-4D10-942E-F2722DB963B4}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D1644D32-AA51-4D10-942E-F2722DB963B4}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D1644D32-AA51-4D10-942E-F2722DB963B4}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -823,6 +829,7 @@ Global
{61C16CA0-B190-4642-A81A-5C03705CA2C1} = {9937FB02-72D9-4FCD-B31E-8E60CFF1B37F}
{EC5D4AFD-3F7F-4B51-9C38-F18C60618731} = {DA71CDAA-8DD3-4D5F-9FBD-8E4B37A2D925}
{9ACA06DA-9AFE-41A2-8109-EFED8B9B14A1} = {EC5D4AFD-3F7F-4B51-9C38-F18C60618731}
+ {D1644D32-AA51-4D10-942E-F2722DB963B4} = {DBBD242E-4437-4BDB-919F-A70839BE75FA}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {8B0975FD-7050-48B0-88C5-48C33378E158}
diff --git a/src/locking/Elsa.DistributedLocking.AzureBlob/Elsa.DistributedLocking.AzureBlob.csproj b/src/locking/Elsa.DistributedLocking.AzureBlob/Elsa.DistributedLocking.AzureBlob.csproj
index c42dc205b..429a883af 100644
--- a/src/locking/Elsa.DistributedLocking.AzureBlob/Elsa.DistributedLocking.AzureBlob.csproj
+++ b/src/locking/Elsa.DistributedLocking.AzureBlob/Elsa.DistributedLocking.AzureBlob.csproj
@@ -13,14 +13,13 @@
elsa, workflows, distributed lock, azure blob storage
+
+
+
+
-
-
-
-
-
diff --git a/src/locking/Elsa.DistributedLocking.Redis/DistributedLockingOptionsExtensions.cs b/src/locking/Elsa.DistributedLocking.Redis/DistributedLockingOptionsExtensions.cs
new file mode 100644
index 000000000..abbaaf77e
--- /dev/null
+++ b/src/locking/Elsa.DistributedLocking.Redis/DistributedLockingOptionsExtensions.cs
@@ -0,0 +1,20 @@
+using Medallion.Threading.Redis;
+using Microsoft.Extensions.DependencyInjection;
+using StackExchange.Redis;
+
+namespace Elsa
+{
+ public static class DistributedLockingOptionsExtensions
+ {
+ public static DistributedLockingOptionsBuilder UseRedisLockProvider(this DistributedLockingOptionsBuilder options, string connectionString)
+ {
+ options.UseProviderFactory(sp =>
+ {
+ var connectionMultiplexer = sp.GetRequiredService();
+ var database = connectionMultiplexer.GetDatabase();
+ return name => new RedisDistributedLock(name, database);
+ });
+ return options;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/locking/Elsa.DistributedLocking.Redis/Elsa.DistributedLocking.Redis.csproj b/src/locking/Elsa.DistributedLocking.Redis/Elsa.DistributedLocking.Redis.csproj
new file mode 100644
index 000000000..1c0ba47cd
--- /dev/null
+++ b/src/locking/Elsa.DistributedLocking.Redis/Elsa.DistributedLocking.Redis.csproj
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+ netstandard2.1
+ Elsa
+
+ Elsa is a set of workflow libraries and tools that enable lean and mean workflowing capabilities in any .NET Core application.
+ This package provides a distributed locking provider using Redis.
+
+ elsa, workflows, distributed lock, redis
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/locking/Elsa.DistributedLocking.SqlServer/Elsa.DistributedLocking.SqlServer.csproj b/src/locking/Elsa.DistributedLocking.SqlServer/Elsa.DistributedLocking.SqlServer.csproj
index 842c67ad7..36120246f 100644
--- a/src/locking/Elsa.DistributedLocking.SqlServer/Elsa.DistributedLocking.SqlServer.csproj
+++ b/src/locking/Elsa.DistributedLocking.SqlServer/Elsa.DistributedLocking.SqlServer.csproj
@@ -14,7 +14,6 @@
-