/// <summary> /// 添加唯一Id生成器 /// </summary> /// <param name="hostBuilder"></param> /// <param name="setup"></param> /// <returns></returns> public static IFlashHostBuilder AddUniqueIdGenerator(this IFlashHostBuilder hostBuilder, Action <IdGeneratorOption> setup) { var option = new IdGeneratorOption(); setup(option); hostBuilder.Services.AddSingleton <IUniqueIdGenerator>(sp => { var workId = option.WorkIdCreateStrategy.NextId(); return(new SnowflakeUniqueIdGenerator(workId, option.CenterId)); }); return(hostBuilder); }
/// <summary> /// 使用静态机器标识 /// </summary> /// <param name="option"></param> /// <param name="WorkId"></param> public static void UseStaticWorkIdCreateStrategy(this IdGeneratorOption option, int WorkId) { option.WorkIdCreateStrategy = new StaticWorkIdCreateStrategy(WorkId); }
public static void UseSqlServerWorkIdCreateStrategy(this IdGeneratorOption option, string ConnectionString, string WorkTag) { option.WorkIdCreateStrategy = new SqlServerWorkIdCreateStrategy(ConnectionString, WorkTag); }
public static void UseHostNameWorkIdCreateStrategy(this IdGeneratorOption option) { option.WorkIdCreateStrategy = new HostNameWorkIdCreateStrategy(); }