Commit 8773ec6e authored by Savorboard's avatar Savorboard

Fixed multiple instance snowflake algorithm generating primary key conflicts. (#294)

parent 9703b496
...@@ -55,8 +55,17 @@ namespace DotNetCore.CAP.Infrastructure ...@@ -55,8 +55,17 @@ namespace DotNetCore.CAP.Infrastructure
} }
var random = new Random(); var random = new Random();
var workerId = random.Next((int)MaxWorkerId);
var datacenterId = random.Next((int)MaxDatacenterId); if (!int.TryParse(Environment.GetEnvironmentVariable("CAP_WORKERID", EnvironmentVariableTarget.Machine), out var workerId))
{
workerId = random.Next((int)MaxWorkerId);
}
if (!int.TryParse(Environment.GetEnvironmentVariable("CAP_DATACENTERID", EnvironmentVariableTarget.Machine), out var datacenterId))
{
datacenterId = random.Next((int)MaxDatacenterId);
}
return _snowflakeId = new SnowflakeId(workerId, datacenterId); return _snowflakeId = new SnowflakeId(workerId, datacenterId);
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment