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
}
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);
}
}
......
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