去除引用common.props
This commit is contained in:
@@ -1,7 +1,5 @@
|
||||
using System.Runtime.InteropServices;
|
||||
using JNPF.Common.Cache;
|
||||
using JNPF.Common.Const;
|
||||
using JNPF.FriendlyException;
|
||||
using Yitter.IdGenerator;
|
||||
|
||||
namespace JNPF.Common.Security;
|
||||
@@ -11,56 +9,56 @@ namespace JNPF.Common.Security;
|
||||
/// </summary>
|
||||
public class SnowflakeIdHelper
|
||||
{
|
||||
// 定义dll路径
|
||||
public const string RegWorkerId_DLL_NAME = "lib\\regworkerid_lib_v1.3.1\\yitidgengo.dll";
|
||||
// 定义dll路径
|
||||
public const string RegWorkerId_DLL_NAME = "lib\\regworkerid_lib_v1.3.1\\yitidgengo.dll";
|
||||
|
||||
// 根据文档定义三个接口
|
||||
// 根据文档定义三个接口
|
||||
|
||||
// 注册一个 WorkerId,会先注销所有本机已注册的记录
|
||||
// ip: redis 服务器地址
|
||||
// port: redis 端口
|
||||
// password: redis 访问密码,可为空字符串“”
|
||||
// maxWorkerId: 最大 WorkerId
|
||||
[DllImport(RegWorkerId_DLL_NAME, EntryPoint = "RegisterOne", CallingConvention = CallingConvention.Cdecl, ExactSpelling = false)]
|
||||
private static extern ushort RegisterOne(string ip, int port, string password, int maxWorkerId);
|
||||
// 注册一个 WorkerId,会先注销所有本机已注册的记录
|
||||
// ip: redis 服务器地址
|
||||
// port: redis 端口
|
||||
// password: redis 访问密码,可为空字符串“”
|
||||
// maxWorkerId: 最大 WorkerId
|
||||
[DllImport(RegWorkerId_DLL_NAME, EntryPoint = "RegisterOne", CallingConvention = CallingConvention.Cdecl, ExactSpelling = false)]
|
||||
private static extern ushort RegisterOne(string ip, int port, string password, int maxWorkerId);
|
||||
|
||||
// 注销本机已注册的 WorkerId
|
||||
[DllImport(RegWorkerId_DLL_NAME, EntryPoint = "UnRegister", CallingConvention = CallingConvention.Cdecl, ExactSpelling = false)]
|
||||
private static extern void UnRegister();
|
||||
// 注销本机已注册的 WorkerId
|
||||
[DllImport(RegWorkerId_DLL_NAME, EntryPoint = "UnRegister", CallingConvention = CallingConvention.Cdecl, ExactSpelling = false)]
|
||||
private static extern void UnRegister();
|
||||
|
||||
// 检查本地WorkerId是否有效(0-有效,其它-无效)
|
||||
[DllImport(RegWorkerId_DLL_NAME, EntryPoint = "Validate", CallingConvention = CallingConvention.Cdecl, ExactSpelling = false)]
|
||||
private static extern int Validate(int workerId);
|
||||
// 检查本地WorkerId是否有效(0-有效,其它-无效)
|
||||
[DllImport(RegWorkerId_DLL_NAME, EntryPoint = "Validate", CallingConvention = CallingConvention.Cdecl, ExactSpelling = false)]
|
||||
private static extern int Validate(int workerId);
|
||||
|
||||
/// <summary>
|
||||
/// 初始化YitId配置
|
||||
/// </summary>
|
||||
public static void InitYitIdWorker()
|
||||
{
|
||||
//var option = new IdGeneratorOptions
|
||||
//{
|
||||
// WorkerId = 1, //必须 全局唯一,必须 程序设定,理论最大值 2^WorkerIdBitLength-1
|
||||
// //BaseTime = new DateTime(2023, 1, 1, 0, 0, 0, DateTimeKind.Utc), //用生成ID时的系统时间与基础时间的差值(毫秒数)作为生成ID的时间戳
|
||||
// WorkerIdBitLength = 16, //机器码位长,决定 WorkerId 的最大值,默认值6,取值范围 [1, 16]
|
||||
// //SeqBitLength = 4, //序列数位长,默认值6,取值范围 [3, 21](建议不小于4),决定每毫秒基础生成的ID个数
|
||||
// //MinSeqNumber = 5, //最小序列数,默认值5,取值范围 [5, MaxSeqNumber]
|
||||
// //MaxSeqNumber 最大序列数,设置范围 [MinSeqNumber, 2^SeqBitLength-1],默认值0
|
||||
//};
|
||||
var option = App.GetConfig<IdGeneratorOptions>("YitId");
|
||||
if (option.WorkerId == 0)
|
||||
/// <summary>
|
||||
/// 初始化YitId配置
|
||||
/// </summary>
|
||||
public static void InitYitIdWorker()
|
||||
{
|
||||
CacheOptions _cacheOptions = App.GetConfig<CacheOptions>("Cache", true);
|
||||
option.WorkerId = RegisterOne(_cacheOptions.ip, _cacheOptions.port, _cacheOptions.password, 63);
|
||||
//var option = new IdGeneratorOptions
|
||||
//{
|
||||
// WorkerId = 1, //必须 全局唯一,必须 程序设定,理论最大值 2^WorkerIdBitLength-1
|
||||
// //BaseTime = new DateTime(2023, 1, 1, 0, 0, 0, DateTimeKind.Utc), //用生成ID时的系统时间与基础时间的差值(毫秒数)作为生成ID的时间戳
|
||||
// WorkerIdBitLength = 16, //机器码位长,决定 WorkerId 的最大值,默认值6,取值范围 [1, 16]
|
||||
// //SeqBitLength = 4, //序列数位长,默认值6,取值范围 [3, 21](建议不小于4),决定每毫秒基础生成的ID个数
|
||||
// //MinSeqNumber = 5, //最小序列数,默认值5,取值范围 [5, MaxSeqNumber]
|
||||
// //MaxSeqNumber 最大序列数,设置范围 [MinSeqNumber, 2^SeqBitLength-1],默认值0
|
||||
//};
|
||||
var option = App.GetConfig<IdGeneratorOptions>("YitId");
|
||||
if (option.WorkerId == 0)
|
||||
{
|
||||
CacheOptions _cacheOptions = App.GetConfig<CacheOptions>("Cache", true);
|
||||
option.WorkerId = RegisterOne(_cacheOptions.ip, _cacheOptions.port, _cacheOptions.password, 63);
|
||||
}
|
||||
YitIdHelper.SetIdGenerator(option);
|
||||
}
|
||||
YitIdHelper.SetIdGenerator(option);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 生成ID.
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static string NextId()
|
||||
{
|
||||
return YitIdHelper.NextId().ToString();
|
||||
}
|
||||
/// <summary>
|
||||
/// 生成ID.
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static string NextId()
|
||||
{
|
||||
return YitIdHelper.NextId().ToString();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user