diff --git a/CAP.sln b/CAP.sln
index e87e109..13eac1f 100644
--- a/CAP.sln
+++ b/CAP.sln
@@ -31,6 +31,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{10C0818D
build.cake = build.cake
build.ps1 = build.ps1
build.sh = build.sh
+ Directory.Build.props = Directory.Build.props
build\index.cake = build\index.cake
build\util.cake = build\util.cake
build\version.cake = build\version.cake
diff --git a/Directory.Build.props b/Directory.Build.props
index c4ae862..a431f52 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -1,18 +1,29 @@
-
-
-
- CAP
- .NET Core Community;Savorboard
- https://github.com/dotnetcore/CAP
- git
- $(MSBuildThisFileDirectory)
- https://avatars2.githubusercontent.com/u/19404084
- https://github.com/dotnetcore/CAP
- https://github.com/dotnetcore/CAP/blob/master/LICENSE.txt
- CAP;EventBus;Distributed Transaction
- EventBus and eventually consistency in distributed architectures.
-
+
+
+
+ CAP
+ .NET Core Community;Savorboard
+ https://github.com/dotnetcore/CAP
+ git
+ $(MSBuildThisFileDirectory)
+ https://avatars2.githubusercontent.com/u/19404084
+ https://github.com/dotnetcore/CAP
+ https://github.com/dotnetcore/CAP/blob/master/LICENSE.txt
+ CAP;EventBus;Distributed Transaction
+ EventBus outbox integration and eventually consistency in microservice architectures.
+
+
+
+
+ true
+ true
+ $(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb
+
+
+
+
+
\ No newline at end of file
diff --git a/README.md b/README.md
index e03b9ab..03e98cb 100644
--- a/README.md
+++ b/README.md
@@ -104,7 +104,7 @@ public class PublishController : Controller
{
using (var transaction = connection.BeginTransaction(_capBus, autoCommit: true))
{
- //your business code
+ //your business logic code
_capBus.Publish("xxx.services.show.time", DateTime.Now);
}
@@ -118,7 +118,7 @@ public class PublishController : Controller
{
using (var trans = dbContext.Database.BeginTransaction(_capBus, autoCommit: true))
{
- //your business code
+ //your business logic code
_capBus.Publish("xxx.services.show.time", DateTime.Now);
}
@@ -131,7 +131,7 @@ public class PublishController : Controller
### Subscribe
-**In Action Method**
+**In Controller Action**
Add the Attribute `[CapSubscribe()]` on Action to subscribe message:
@@ -147,7 +147,7 @@ public class PublishController : Controller
```
-**In Service Method**
+**In Business Logic Service**
If your subscribe method is not in the Controller,then your subscribe class need to Inheritance `ICapSubscribe`:
@@ -179,7 +179,10 @@ public void ConfigureServices(IServiceCollection services)
//Note: The injection of services needs before of `services.AddCap()`
services.AddTransient();
- services.AddCap(x=>{});
+ services.AddCap(x=>
+ {
+ //...
+ });
}
```
diff --git a/src/DotNetCore.CAP.Kafka/DotNetCore.CAP.Kafka.csproj b/src/DotNetCore.CAP.Kafka/DotNetCore.CAP.Kafka.csproj
index 13388ea..a84feee 100644
--- a/src/DotNetCore.CAP.Kafka/DotNetCore.CAP.Kafka.csproj
+++ b/src/DotNetCore.CAP.Kafka/DotNetCore.CAP.Kafka.csproj
@@ -13,7 +13,7 @@
-
+
diff --git a/src/DotNetCore.CAP.MySql/DotNetCore.CAP.MySql.csproj b/src/DotNetCore.CAP.MySql/DotNetCore.CAP.MySql.csproj
index 002ebeb..ac716ba 100644
--- a/src/DotNetCore.CAP.MySql/DotNetCore.CAP.MySql.csproj
+++ b/src/DotNetCore.CAP.MySql/DotNetCore.CAP.MySql.csproj
@@ -15,7 +15,7 @@
-
+
diff --git a/src/DotNetCore.CAP.PostgreSql/DotNetCore.CAP.PostgreSql.csproj b/src/DotNetCore.CAP.PostgreSql/DotNetCore.CAP.PostgreSql.csproj
index fc76e6c..fc854c0 100644
--- a/src/DotNetCore.CAP.PostgreSql/DotNetCore.CAP.PostgreSql.csproj
+++ b/src/DotNetCore.CAP.PostgreSql/DotNetCore.CAP.PostgreSql.csproj
@@ -15,7 +15,7 @@
-
+
diff --git a/src/DotNetCore.CAP/Infrastructure/SnowflakeId.cs b/src/DotNetCore.CAP/Infrastructure/SnowflakeId.cs
index 1fcc3d0..5a1dd3a 100644
--- a/src/DotNetCore.CAP/Infrastructure/SnowflakeId.cs
+++ b/src/DotNetCore.CAP/Infrastructure/SnowflakeId.cs
@@ -2,7 +2,6 @@
// An object that generates IDs. This is broken into a separate class in case we ever want to support multiple worker threads per process
using System;
-using System.Threading;
namespace DotNetCore.CAP.Infrastructure
{
@@ -24,10 +23,10 @@ namespace DotNetCore.CAP.Infrastructure
private static SnowflakeId _snowflakeId;
private readonly object _lock = new object();
- private static readonly object s_lock = new object();
+ private static readonly object SLock = new object();
private long _lastTimestamp = -1L;
- private SnowflakeId(long workerId, long datacenterId, long sequence = 0L)
+ public SnowflakeId(long workerId, long datacenterId, long sequence = 0L)
{
WorkerId = workerId;
DatacenterId = datacenterId;
@@ -46,11 +45,19 @@ namespace DotNetCore.CAP.Infrastructure
public long Sequence { get; internal set; }
- public static SnowflakeId Default(long datacenterId = 0)
+ public static SnowflakeId Default()
{
- lock (s_lock)
+ lock (SLock)
{
- return _snowflakeId ?? (_snowflakeId = new SnowflakeId(Thread.CurrentThread.ManagedThreadId, datacenterId));
+ if (_snowflakeId != null)
+ {
+ return _snowflakeId;
+ }
+
+ var random = new Random();
+ var workerId = random.Next((int)MaxWorkerId);
+ var datacenterId = random.Next((int)MaxDatacenterId);
+ return _snowflakeId = new SnowflakeId(workerId, datacenterId);
}
}
diff --git a/test/DotNetCore.CAP.MongoDB.Test/DotNetCore.CAP.MongoDB.Test.csproj b/test/DotNetCore.CAP.MongoDB.Test/DotNetCore.CAP.MongoDB.Test.csproj
index b04ca28..f758ee0 100644
--- a/test/DotNetCore.CAP.MongoDB.Test/DotNetCore.CAP.MongoDB.Test.csproj
+++ b/test/DotNetCore.CAP.MongoDB.Test/DotNetCore.CAP.MongoDB.Test.csproj
@@ -10,9 +10,12 @@
-
-
-
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers
+
diff --git a/test/DotNetCore.CAP.MySql.Test/DotNetCore.CAP.MySql.Test.csproj b/test/DotNetCore.CAP.MySql.Test/DotNetCore.CAP.MySql.Test.csproj
index 1b98a58..6f6d37b 100644
--- a/test/DotNetCore.CAP.MySql.Test/DotNetCore.CAP.MySql.Test.csproj
+++ b/test/DotNetCore.CAP.MySql.Test/DotNetCore.CAP.MySql.Test.csproj
@@ -12,12 +12,15 @@
-
-
-
+
+
+ all
+ runtime; build; native; contentfiles; analyzers
+
+
-
+
diff --git a/test/DotNetCore.CAP.PostgreSql.Test/DotNetCore.CAP.PostgreSql.Test.csproj b/test/DotNetCore.CAP.PostgreSql.Test/DotNetCore.CAP.PostgreSql.Test.csproj
index 3177749..f1bf2bd 100644
--- a/test/DotNetCore.CAP.PostgreSql.Test/DotNetCore.CAP.PostgreSql.Test.csproj
+++ b/test/DotNetCore.CAP.PostgreSql.Test/DotNetCore.CAP.PostgreSql.Test.csproj
@@ -7,10 +7,13 @@
-
-
-
-
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers
+
diff --git a/test/DotNetCore.CAP.SqlServer.Test/DotNetCore.CAP.SqlServer.Test.csproj b/test/DotNetCore.CAP.SqlServer.Test/DotNetCore.CAP.SqlServer.Test.csproj
index 7df0282..5bdcd2f 100644
--- a/test/DotNetCore.CAP.SqlServer.Test/DotNetCore.CAP.SqlServer.Test.csproj
+++ b/test/DotNetCore.CAP.SqlServer.Test/DotNetCore.CAP.SqlServer.Test.csproj
@@ -12,13 +12,16 @@
-
+
-
-
+
+ all
+ runtime; build; native; contentfiles; analyzers
+
+
-
+
diff --git a/test/DotNetCore.CAP.Test/DotNetCore.CAP.Test.csproj b/test/DotNetCore.CAP.Test/DotNetCore.CAP.Test.csproj
index bdab81c..1b046d9 100644
--- a/test/DotNetCore.CAP.Test/DotNetCore.CAP.Test.csproj
+++ b/test/DotNetCore.CAP.Test/DotNetCore.CAP.Test.csproj
@@ -6,13 +6,16 @@
-
+
-
-
+
+ all
+ runtime; build; native; contentfiles; analyzers
+
+
-
+