namespace MiaoYu.Core;
///
/// 程序启动器
///
[ImportStartupModule(
typeof(CoreAutoRegisterIOCStartup)
)]
public class CoreStartup : StartupModule
{
///
/// 程序启动器
///
public CoreStartup() => Order = -1;
///
///
///
///
public override void ConfigureServices(WebApplicationBuilder webApplicationBuilder)
{
webApplicationBuilder.Services.AddIdGen(0);
// MemoryCache
webApplicationBuilder.Services.AddMemoryCache();
}
///
///
///
///
public override void Configure(WebApplication webApplication)
{
// 创建 IdGeneratorOptions 对象,可在构造函数中输入 WorkerId:
var options = new Yitter.IdGenerator.IdGeneratorOptions((ushort)Thread.CurrentThread.ManagedThreadId);
options.DataCenterIdBitLength = 0; // 默认值0,不用设置。若要使用,则设置为5,表示5bit的数据中心Id,支持最多部署32个数据中心。
options.WorkerIdBitLength = 12; // 默认值6,限定 WorkerId 最大值为2^6-1,即默认最多支持64个节点。
options.SeqBitLength = 10; // 默认值6,限制每毫秒生成的ID个数。若生成速度超过5万个/秒,建议加大 SeqBitLength 到 10。
// options.BaseTime = Your_Base_Time; // 如果要兼容老系统的雪花算法,此处应设置为老系统的BaseTime。
// ...... 其它参数参考 IdGeneratorOptions 定义。
// 配置长度
// 保存参数(务必调用,否则参数设置不生效):
//options.DataCenterId = 2;
YitIdHelper.SetIdGenerator(options);
//var id = YitIdHelper.NextId();
}
}