diff --git a/src/ScheduleMasterCore/Hos.ScheduleMaster.Base/Hos.ScheduleMaster.Base.csproj b/src/ScheduleMasterCore/Hos.ScheduleMaster.Base/Hos.ScheduleMaster.Base.csproj index d380fec..311a3cc 100644 --- a/src/ScheduleMasterCore/Hos.ScheduleMaster.Base/Hos.ScheduleMaster.Base.csproj +++ b/src/ScheduleMasterCore/Hos.ScheduleMaster.Base/Hos.ScheduleMaster.Base.csproj @@ -1,29 +1,31 @@  - - netstandard2.0 - ScheduleMaster - HOHO - ScheduleMaster - ScheduleMaster task entry. - true - 2.2.0 - https://github.com/hey-hoho/ScheduleMasterCore - github - https://imgkr.cn-bj.ufileos.com/1dac6c35-4511-46b0-88d1-95e43c7a4b0c.png - netcore, schedule, quartz, task - https://github.com/hey-hoho/ScheduleMasterCore - 2.2.0.0 - 2.2.0.0 - + + net6.0 + enable + disable + ScheduleMaster + HOHO + ScheduleMaster + ScheduleMaster task entry. + true + 2.2.0 + https://github.com/hey-hoho/ScheduleMasterCore + github + https://imgkr.cn-bj.ufileos.com/1dac6c35-4511-46b0-88d1-95e43c7a4b0c.png + netcore, schedule, quartz, task + https://github.com/hey-hoho/ScheduleMasterCore + 2.2.0.0 + 2.2.0.0 + - - - + + + - - - - + + + + diff --git a/src/ScheduleMasterCore/Hos.ScheduleMaster.Core/ConfigurationCache.cs b/src/ScheduleMasterCore/Hos.ScheduleMaster.Core/ConfigurationCache.cs index faba84f..1b26267 100644 --- a/src/ScheduleMasterCore/Hos.ScheduleMaster.Core/ConfigurationCache.cs +++ b/src/ScheduleMasterCore/Hos.ScheduleMaster.Core/ConfigurationCache.cs @@ -1,8 +1,5 @@ using Microsoft.Extensions.Configuration; -using System; using System.Collections.Concurrent; -using System.Collections.Generic; -using System.Linq; namespace Hos.ScheduleMaster.Core { @@ -34,7 +31,7 @@ static ConfigurationCache() /// public static void SetNode(IConfiguration configuration) { - NodeSetting = configuration.GetSection("NodeSetting").Get(); + NodeSetting = configuration.GetSection("NodeSetting").Get(); string identity = AppCommandResolver.GetCommandLineArgsValue("identity"); if (!string.IsNullOrEmpty(identity)) @@ -221,12 +218,18 @@ public class DbConnector public DbProvider Provider { get; set; } public string ConnectionString { get; set; } + + /// + /// 数据库版本 + /// + public string Version { get; set; } } public enum DbProvider { MySQL, SQLServer, - PostgreSQL + PostgreSQL, + Oracle } } diff --git a/src/ScheduleMasterCore/Hos.ScheduleMaster.Core/EntityFramework/DbContext.cs b/src/ScheduleMasterCore/Hos.ScheduleMaster.Core/EntityFramework/DbContext.cs index f4634c2..51a1770 100644 --- a/src/ScheduleMasterCore/Hos.ScheduleMaster.Core/EntityFramework/DbContext.cs +++ b/src/ScheduleMasterCore/Hos.ScheduleMaster.Core/EntityFramework/DbContext.cs @@ -17,77 +17,81 @@ namespace Hos.ScheduleMaster.Core.Models { public class SmDbContext : DbContext { - protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) - { - base.OnConfiguring(optionsBuilder); - - optionsBuilder.UseDatabase(); - } - - protected override void OnModelCreating(ModelBuilder modelBuilder) - { - base.OnModelCreating(modelBuilder); - - //字段类型适配 - modelBuilder.FixColumnsDataType(); - modelBuilder.FixColumnsDataType(); - modelBuilder.FixColumnsDataType(); - modelBuilder.FixColumnsDataType(); - modelBuilder.FixColumnsDataType(); - modelBuilder.FixColumnsDataType(); - modelBuilder.FixColumnsDataType(); - modelBuilder.FixColumnsDataType(); - modelBuilder.FixColumnsDataType(); - modelBuilder.FixColumnsDataType(); - modelBuilder.FixColumnsDataType(); - modelBuilder.FixColumnsDataType(); - modelBuilder.FixColumnsDataType(); - + protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) + { + base.OnConfiguring(optionsBuilder); + + optionsBuilder.UseDatabase(); + } + + protected override void OnModelCreating(ModelBuilder modelBuilder) + { + base.OnModelCreating(modelBuilder); + + //字段类型适配 + modelBuilder.FixColumnsDataType(); + modelBuilder.FixColumnsDataType(); + modelBuilder.FixColumnsDataType(); + modelBuilder.FixColumnsDataType(); + modelBuilder.FixColumnsDataType(); + modelBuilder.FixColumnsDataType(); + modelBuilder.FixColumnsDataType(); + modelBuilder.FixColumnsDataType(); + modelBuilder.FixColumnsDataType(); + modelBuilder.FixColumnsDataType(); + modelBuilder.FixColumnsDataType(); + modelBuilder.FixColumnsDataType(); + modelBuilder.FixColumnsDataType(); + //创建索引 modelBuilder.CreateIndexes(); - //初始化数据 + //初始化数据 modelBuilder.SeedData(); - } - public virtual DbSet ScheduleDelayeds { get; set; } + } + public virtual DbSet ScheduleDelayeds { get; set; } + + public virtual DbSet Schedules { get; set; } - public virtual DbSet Schedules { get; set; } + public virtual DbSet ScheduleExecutors { get; set; } - public virtual DbSet ScheduleExecutors { get; set; } + public virtual DbSet ScheduleHttpOptions { get; set; } - public virtual DbSet ScheduleHttpOptions { get; set; } + public virtual DbSet ScheduleKeepers { get; set; } - public virtual DbSet ScheduleKeepers { get; set; } + public virtual DbSet ScheduleLocks { get; set; } - public virtual DbSet ScheduleLocks { get; set; } + public virtual DbSet ScheduleReferences { get; set; } - public virtual DbSet ScheduleReferences { get; set; } + public virtual DbSet ScheduleTraces { get; set; } - public virtual DbSet ScheduleTraces { get; set; } + public virtual DbSet ServerNodes { get; set; } - public virtual DbSet ServerNodes { get; set; } + public virtual DbSet SystemConfigs { get; set; } - public virtual DbSet SystemConfigs { get; set; } + public virtual DbSet SystemLogs { get; set; } - public virtual DbSet SystemLogs { get; set; } + public virtual DbSet SystemUsers { get; set; } - public virtual DbSet SystemUsers { get; set; } + public virtual DbSet TraceStatisticss { get; set; } - public virtual DbSet TraceStatisticss { get; set; } - - /// + /// /// 获取数据库当前时间函数 /// public string GetDbNowDateTime { get { - if (ConfigurationCache.DbConnector.Provider == DbProvider.SQLServer) + if (ConfigurationCache.DbConnector.Provider == DbProvider.SQLServer) { return "getdate()"; } + if (ConfigurationCache.DbConnector.Provider == DbProvider.Oracle) + { + return "( SELECT SYSDATE FROM DUAL )"; + } return "now()"; } } diff --git a/src/ScheduleMasterCore/Hos.ScheduleMaster.Core/EntityFramework/EntityFrameworkContextExtensions.cs b/src/ScheduleMasterCore/Hos.ScheduleMaster.Core/EntityFramework/EntityFrameworkContextExtensions.cs index 77216fa..d1d4523 100644 --- a/src/ScheduleMasterCore/Hos.ScheduleMaster.Core/EntityFramework/EntityFrameworkContextExtensions.cs +++ b/src/ScheduleMasterCore/Hos.ScheduleMaster.Core/EntityFramework/EntityFrameworkContextExtensions.cs @@ -1,11 +1,6 @@ using Hos.ScheduleMaster.Core; -using Hos.ScheduleMaster.Core.Common; using Hos.ScheduleMaster.Core.Models; using Microsoft.Extensions.Configuration; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; namespace Microsoft.Extensions.DependencyInjection { @@ -16,7 +11,8 @@ public static void AddScheduleMasterDb(this IServiceCollection services, IConfig ConfigurationCache.DbConnector = new DbConnector { Provider = (DbProvider)Enum.Parse(typeof(DbProvider), configuration["DbConnector:Provider"] ?? "mysql", true), - ConnectionString = configuration["DbConnector:ConnectionString"] + ConnectionString = configuration["DbConnector:ConnectionString"], + Version = configuration["DbConnector:Version"], }; services.AddDbContext(); diff --git a/src/ScheduleMasterCore/Hos.ScheduleMaster.Core/EntityFramework/ModelBuilderExtensions.cs b/src/ScheduleMasterCore/Hos.ScheduleMaster.Core/EntityFramework/ModelBuilderExtensions.cs index ad5fb64..1247352 100644 --- a/src/ScheduleMasterCore/Hos.ScheduleMaster.Core/EntityFramework/ModelBuilderExtensions.cs +++ b/src/ScheduleMasterCore/Hos.ScheduleMaster.Core/EntityFramework/ModelBuilderExtensions.cs @@ -1,12 +1,8 @@ -using Microsoft.EntityFrameworkCore; -using System; -using System.Collections.Generic; -using System.Text; +using Hos.ScheduleMaster.Core.Common; using Hos.ScheduleMaster.Core.Models; -using Hos.ScheduleMaster.Core.Common; -using System.Reflection; +using Microsoft.EntityFrameworkCore; using System.ComponentModel.DataAnnotations.Schema; -using System.Linq; +using System.Reflection; namespace Hos.ScheduleMaster.Core.EntityFramework { @@ -149,7 +145,7 @@ public static ModelBuilder SeedData(this ModelBuilder builder) ); return builder; } - + /// /// 应用数据库 /// @@ -158,19 +154,21 @@ public static ModelBuilder SeedData(this ModelBuilder builder) public static DbContextOptionsBuilder UseDatabase(this DbContextOptionsBuilder builder) { var conn = ConfigurationCache.DbConnector.ConnectionString; + var ver = ConfigurationCache.DbConnector.Version; switch (ConfigurationCache.DbConnector.Provider) { case DbProvider.SQLServer: builder.UseSqlServer(conn); break; - case DbProvider.MySQL: - builder.UseMySql(conn); - break; case DbProvider.PostgreSQL: builder.UseNpgsql(conn); break; + case DbProvider.Oracle: + builder.UseOracle(conn, b => b.UseOracleSQLCompatibility(ver)); ; + break; + case DbProvider.MySQL: default: - builder.UseMySql(conn); + builder.UseMySql(conn, new MySqlServerVersion(ver)); break; } return builder; @@ -207,6 +205,10 @@ public static ModelBuilder FixColumnsDataType(this ModelBuilder builder) wher { builer.Property(item.Name).HasColumnType(type.Replace("varchar(max)", "text")); } + if (dbProvider == DbProvider.Oracle) + { + builer.Property(item.Name).HasColumnType(type.Replace("varchar(max)", "clob")); + } } } }); @@ -222,15 +224,15 @@ public static ModelBuilder FixColumnsDataType(this ModelBuilder builder) wher /// public static ModelBuilder CreateIndexes(this ModelBuilder builder) { - builder.Entity().HasIndex(p => p.ScheduleId).HasName("scheduletraces_scheduleid_index"); - builder.Entity().HasIndex(p => p.StartTime).HasName("scheduletraces_starttime_index"); - builder.Entity().HasIndex(p => p.Result).HasName("scheduletraces_result_index"); + builder.Entity().HasIndex(p => p.ScheduleId).HasDatabaseName("scheduletraces_scheduleid_index"); + builder.Entity().HasIndex(p => p.StartTime).HasDatabaseName("scheduletraces_starttime_index"); + builder.Entity().HasIndex(p => p.Result).HasDatabaseName("scheduletraces_result_index"); - builder.Entity().HasIndex(p => p.TraceId).HasName("systemlogs_traceid_index"); - builder.Entity().HasIndex(p => p.CreateTime).HasName("systemlogs_createtime_index"); + builder.Entity().HasIndex(p => p.TraceId).HasDatabaseName("systemlogs_traceid_index"); + builder.Entity().HasIndex(p => p.CreateTime).HasDatabaseName("systemlogs_createtime_index"); - builder.Entity().HasIndex(p => p.CreateTime).HasName("scheduledelayeds_createtime_index"); - builder.Entity().HasIndex(p => p.ContentKey).HasName("scheduledelayeds_contentkey_index"); + builder.Entity().HasIndex(p => p.CreateTime).HasDatabaseName("scheduledelayeds_createtime_index"); + builder.Entity().HasIndex(p => p.ContentKey).HasDatabaseName("scheduledelayeds_contentkey_index"); return builder; } diff --git a/src/ScheduleMasterCore/Hos.ScheduleMaster.Core/Hos.ScheduleMaster.Core.csproj b/src/ScheduleMasterCore/Hos.ScheduleMaster.Core/Hos.ScheduleMaster.Core.csproj index aa43508..f84c0ef 100644 --- a/src/ScheduleMasterCore/Hos.ScheduleMaster.Core/Hos.ScheduleMaster.Core.csproj +++ b/src/ScheduleMasterCore/Hos.ScheduleMaster.Core/Hos.ScheduleMaster.Core.csproj @@ -1,58 +1,66 @@  - - netcoreapp3.1 - - - - - - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - - - - - - - - - True - True - DbContext.tt - - - - - - TextTemplatingFileGenerator - DbContext.cs - - - TextTemplatingFileGenerator - RepositoryFactory.cs - - - - - - - - - - True - True - DbContext.tt - - - True - True - RepositoryFactory.tt - - + + net6.0 + enable + disable + + + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + + + + + + + True + True + DbContext.tt + + + + + + TextTemplatingFileGenerator + DbContext.cs + + + TextTemplatingFileGenerator + RepositoryFactory.cs + + + + + + + + + + True + True + DbContext.tt + + + True + True + RepositoryFactory.tt + + + + + + diff --git a/src/ScheduleMasterCore/Hos.ScheduleMaster.Core/Migrations/20240108011145_Init.Designer.cs b/src/ScheduleMasterCore/Hos.ScheduleMaster.Core/Migrations/20240108011145_Init.Designer.cs new file mode 100644 index 0000000..aea826f --- /dev/null +++ b/src/ScheduleMasterCore/Hos.ScheduleMaster.Core/Migrations/20240108011145_Init.Designer.cs @@ -0,0 +1,741 @@ +// +using System; +using Hos.ScheduleMaster.Core.Models; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace Hos.ScheduleMaster.Core.Migrations +{ + [DbContext(typeof(SmDbContext))] + [Migration("20240108011145_Init")] + partial class Init + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "7.0.14") + .HasAnnotation("Relational:MaxIdentifierLength", 64); + + modelBuilder.Entity("Hos.ScheduleMaster.Core.Models.ScheduleDelayedEntity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnName("id"); + + b.Property("ContentKey") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnName("contentkey"); + + b.Property("CreateTime") + .HasColumnType("datetime(6)") + .HasColumnName("createtime"); + + b.Property("CreateUserName") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasColumnName("createusername"); + + b.Property("DelayAbsoluteTime") + .HasColumnType("datetime(6)") + .HasColumnName("delayabsolutetime"); + + b.Property("DelayTimeSpan") + .HasColumnType("int") + .HasColumnName("delaytimespan"); + + b.Property("ExecuteTime") + .HasColumnType("datetime(6)") + .HasColumnName("executetime"); + + b.Property("FailedRetrys") + .HasColumnType("int") + .HasColumnName("failedretrys"); + + b.Property("FinishTime") + .HasColumnType("datetime(6)") + .HasColumnName("finishtime"); + + b.Property("NotifyBody") + .IsRequired() + .HasMaxLength(1000) + .HasColumnType("varchar(1000)") + .HasColumnName("notifybody"); + + b.Property("NotifyDataType") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasColumnName("notifydatatype"); + + b.Property("NotifyUrl") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasColumnName("notifyurl"); + + b.Property("Remark") + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasColumnName("remark"); + + b.Property("SourceApp") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasColumnName("sourceapp"); + + b.Property("Status") + .HasColumnType("int") + .HasColumnName("status"); + + b.Property("Topic") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnName("topic"); + + b.HasKey("Id"); + + b.HasIndex("ContentKey") + .HasDatabaseName("scheduledelayeds_contentkey_index"); + + b.HasIndex("CreateTime") + .HasDatabaseName("scheduledelayeds_createtime_index"); + + b.ToTable("scheduledelayeds"); + }); + + modelBuilder.Entity("Hos.ScheduleMaster.Core.Models.ScheduleEntity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnName("id"); + + b.Property("AssemblyName") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnName("assemblyname"); + + b.Property("ClassName") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnName("classname"); + + b.Property("CreateTime") + .HasColumnType("datetime(6)") + .HasColumnName("createtime"); + + b.Property("CreateUserId") + .HasColumnType("int") + .HasColumnName("createuserid"); + + b.Property("CreateUserName") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasColumnName("createusername"); + + b.Property("CronExpression") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasColumnName("cronexpression"); + + b.Property("CustomParamsJson") + .HasColumnType("longtext") + .HasColumnName("customparamsjson"); + + b.Property("EndDate") + .HasColumnType("datetime(6)") + .HasColumnName("enddate"); + + b.Property("LastRunTime") + .HasColumnType("datetime(6)") + .HasColumnName("lastruntime"); + + b.Property("MetaType") + .HasColumnType("int") + .HasColumnName("metatype"); + + b.Property("NextRunTime") + .HasColumnType("datetime(6)") + .HasColumnName("nextruntime"); + + b.Property("Remark") + .HasMaxLength(500) + .HasColumnType("varchar(500)") + .HasColumnName("remark"); + + b.Property("RunLoop") + .HasColumnType("tinyint(1)") + .HasColumnName("runloop"); + + b.Property("StartDate") + .HasColumnType("datetime(6)") + .HasColumnName("startdate"); + + b.Property("Status") + .HasColumnType("int") + .HasColumnName("status"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnName("title"); + + b.Property("TotalRunCount") + .HasColumnType("int") + .HasColumnName("totalruncount"); + + b.HasKey("Id"); + + b.ToTable("schedules"); + }); + + modelBuilder.Entity("Hos.ScheduleMaster.Core.Models.ScheduleExecutorEntity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasColumnName("id"); + + b.Property("ScheduleId") + .HasColumnType("char(36)") + .HasColumnName("scheduleid"); + + b.Property("WorkerName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnName("workername"); + + b.HasKey("Id"); + + b.ToTable("scheduleexecutors"); + }); + + modelBuilder.Entity("Hos.ScheduleMaster.Core.Models.ScheduleHttpOptionEntity", b => + { + b.Property("ScheduleId") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnName("scheduleid"); + + b.Property("Body") + .HasColumnType("longtext") + .HasColumnName("body"); + + b.Property("ContentType") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasColumnName("contenttype"); + + b.Property("Headers") + .HasColumnType("longtext") + .HasColumnName("headers"); + + b.Property("Method") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("varchar(10)") + .HasColumnName("method"); + + b.Property("RequestUrl") + .IsRequired() + .HasMaxLength(500) + .HasColumnType("varchar(500)") + .HasColumnName("requesturl"); + + b.HasKey("ScheduleId"); + + b.ToTable("schedulehttpoptions"); + }); + + modelBuilder.Entity("Hos.ScheduleMaster.Core.Models.ScheduleKeeperEntity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasColumnName("id"); + + b.Property("ScheduleId") + .HasColumnType("char(36)") + .HasColumnName("scheduleid"); + + b.Property("UserId") + .HasColumnType("int") + .HasColumnName("userid"); + + b.HasKey("Id"); + + b.ToTable("schedulekeepers"); + }); + + modelBuilder.Entity("Hos.ScheduleMaster.Core.Models.ScheduleLockEntity", b => + { + b.Property("ScheduleId") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnName("scheduleid"); + + b.Property("LockedNode") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnName("lockednode"); + + b.Property("LockedTime") + .HasColumnType("datetime(6)") + .HasColumnName("lockedtime"); + + b.Property("Status") + .HasColumnType("int") + .HasColumnName("status"); + + b.HasKey("ScheduleId"); + + b.ToTable("schedulelocks"); + }); + + modelBuilder.Entity("Hos.ScheduleMaster.Core.Models.ScheduleReferenceEntity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasColumnName("id"); + + b.Property("ChildId") + .HasColumnType("char(36)") + .HasColumnName("childid"); + + b.Property("ScheduleId") + .HasColumnType("char(36)") + .HasColumnName("scheduleid"); + + b.HasKey("Id"); + + b.ToTable("schedulereferences"); + }); + + modelBuilder.Entity("Hos.ScheduleMaster.Core.Models.ScheduleTraceEntity", b => + { + b.Property("TraceId") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnName("traceid"); + + b.Property("ElapsedTime") + .HasColumnType("double") + .HasColumnName("elapsedtime"); + + b.Property("EndTime") + .HasColumnType("datetime(6)") + .HasColumnName("endtime"); + + b.Property("Node") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnName("node"); + + b.Property("Result") + .HasColumnType("int") + .HasColumnName("result"); + + b.Property("ScheduleId") + .HasColumnType("char(36)") + .HasColumnName("scheduleid"); + + b.Property("StartTime") + .HasColumnType("datetime(6)") + .HasColumnName("starttime"); + + b.HasKey("TraceId"); + + b.HasIndex("Result") + .HasDatabaseName("scheduletraces_result_index"); + + b.HasIndex("ScheduleId") + .HasDatabaseName("scheduletraces_scheduleid_index"); + + b.HasIndex("StartTime") + .HasDatabaseName("scheduletraces_starttime_index"); + + b.ToTable("scheduletraces"); + }); + + modelBuilder.Entity("Hos.ScheduleMaster.Core.Models.ServerNodeEntity", b => + { + b.Property("NodeName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnName("nodename"); + + b.Property("AccessProtocol") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasColumnName("accessprotocol"); + + b.Property("AccessSecret") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasColumnName("accesssecret"); + + b.Property("Host") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnName("host"); + + b.Property("LastUpdateTime") + .HasColumnType("datetime(6)") + .HasColumnName("lastupdatetime"); + + b.Property("MachineName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnName("machinename"); + + b.Property("MaxConcurrency") + .HasColumnType("int") + .HasColumnName("maxconcurrency"); + + b.Property("NodeType") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasColumnName("nodetype"); + + b.Property("Priority") + .HasColumnType("int") + .HasColumnName("priority"); + + b.Property("Status") + .HasColumnType("int") + .HasColumnName("status"); + + b.HasKey("NodeName"); + + b.ToTable("servernodes"); + }); + + modelBuilder.Entity("Hos.ScheduleMaster.Core.Models.SystemConfigEntity", b => + { + b.Property("Key") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasColumnName("key"); + + b.Property("CreateTime") + .HasColumnType("datetime(6)") + .HasColumnName("createtime"); + + b.Property("Group") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasColumnName("group"); + + b.Property("IsReuired") + .HasColumnType("tinyint(1)") + .HasColumnName("isreuired"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnName("name"); + + b.Property("Remark") + .HasMaxLength(500) + .HasColumnType("varchar(500)") + .HasColumnName("remark"); + + b.Property("Sort") + .HasColumnType("int") + .HasColumnName("sort"); + + b.Property("UpdateTime") + .HasColumnType("datetime(6)") + .HasColumnName("updatetime"); + + b.Property("UpdateUserName") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasColumnName("updateusername"); + + b.Property("Value") + .HasMaxLength(1000) + .HasColumnType("varchar(1000)") + .HasColumnName("value"); + + b.HasKey("Key"); + + b.ToTable("systemconfigs"); + + b.HasData( + new + { + Key = "Email_SmtpServer", + CreateTime = new DateTime(2024, 1, 8, 9, 11, 44, 452, DateTimeKind.Local).AddTicks(6406), + Group = "邮件配置", + IsReuired = true, + Name = "邮件服务器", + Remark = "smtp服务器地址", + Sort = 1, + Value = "" + }, + new + { + Key = "Email_SmtpPort", + CreateTime = new DateTime(2024, 1, 8, 9, 11, 44, 452, DateTimeKind.Local).AddTicks(6411), + Group = "邮件配置", + IsReuired = true, + Name = "邮件服务器端口", + Remark = "smtp端口号", + Sort = 2, + Value = "" + }, + new + { + Key = "Email_FromAccount", + CreateTime = new DateTime(2024, 1, 8, 9, 11, 44, 452, DateTimeKind.Local).AddTicks(6412), + Group = "邮件配置", + IsReuired = true, + Name = "发件人账号", + Remark = "邮箱账号", + Sort = 3, + Value = "" + }, + new + { + Key = "Email_FromAccountPwd", + CreateTime = new DateTime(2024, 1, 8, 9, 11, 44, 452, DateTimeKind.Local).AddTicks(6413), + Group = "邮件配置", + IsReuired = true, + Name = "发件人账号密码", + Remark = "登录密码或授权码等", + Sort = 4, + Value = "" + }, + new + { + Key = "Assembly_ImagePullPolicy", + CreateTime = new DateTime(2024, 1, 8, 9, 11, 44, 452, DateTimeKind.Local).AddTicks(6414), + Group = "程序集配置", + IsReuired = true, + Name = "文件包拉取策略", + Remark = "Always-总是拉取,IfNotPresent-本地没有时拉取,默认是Always", + Sort = 1, + Value = "Always" + }, + new + { + Key = "Http_RequestTimeout", + CreateTime = new DateTime(2024, 1, 8, 9, 11, 44, 452, DateTimeKind.Local).AddTicks(6415), + Group = "HTTP配置", + IsReuired = true, + Name = "请求超时时间", + Remark = "单位是秒,默认值是10", + Sort = 1, + Value = "10" + }, + new + { + Key = "System_WorkerUnHealthTimes", + CreateTime = new DateTime(2024, 1, 8, 9, 11, 44, 452, DateTimeKind.Local).AddTicks(6416), + Group = "系统配置", + IsReuired = true, + Name = "Worker允许无响应次数", + Remark = "健康检查失败达到最大次数会被下线剔除,默认值是3", + Sort = 1, + Value = "3" + }, + new + { + Key = "DelayTask_DelayPattern", + CreateTime = new DateTime(2024, 1, 8, 9, 11, 44, 452, DateTimeKind.Local).AddTicks(6418), + Group = "延时任务配置", + IsReuired = true, + Name = "延迟模式", + Remark = "Relative-相对时间,Absolute-绝对时间,默认值是Relative", + Sort = 1, + Value = "Relative" + }, + new + { + Key = "DelayTask_RetryTimes", + CreateTime = new DateTime(2024, 1, 8, 9, 11, 44, 452, DateTimeKind.Local).AddTicks(6419), + Group = "延时任务配置", + IsReuired = true, + Name = "回调失败重试次数", + Remark = "回调失败重试次数,默认值是3", + Sort = 2, + Value = "3" + }, + new + { + Key = "DelayTask_RetrySpans", + CreateTime = new DateTime(2024, 1, 8, 9, 11, 44, 452, DateTimeKind.Local).AddTicks(6420), + Group = "延时任务配置", + IsReuired = true, + Name = "回调失败重试间隔", + Remark = "回调失败重试间隔时间(s),会随着重试次数递增,默认值是10秒", + Sort = 3, + Value = "10" + }); + }); + + modelBuilder.Entity("Hos.ScheduleMaster.Core.Models.SystemLogEntity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasColumnName("id"); + + b.Property("Category") + .HasColumnType("int") + .HasColumnName("category"); + + b.Property("CreateTime") + .HasColumnType("datetime(6)") + .HasColumnName("createtime"); + + b.Property("Message") + .IsRequired() + .HasColumnType("longtext") + .HasColumnName("message"); + + b.Property("Node") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnName("node"); + + b.Property("ScheduleId") + .HasColumnType("char(36)") + .HasColumnName("scheduleid"); + + b.Property("StackTrace") + .HasColumnType("longtext") + .HasColumnName("stacktrace"); + + b.Property("TraceId") + .HasColumnType("char(36)") + .HasColumnName("traceid"); + + b.HasKey("Id"); + + b.HasIndex("CreateTime") + .HasDatabaseName("systemlogs_createtime_index"); + + b.HasIndex("TraceId") + .HasDatabaseName("systemlogs_traceid_index"); + + b.ToTable("systemlogs"); + }); + + modelBuilder.Entity("Hos.ScheduleMaster.Core.Models.SystemUserEntity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasColumnName("id"); + + b.Property("CreateTime") + .HasColumnType("datetime(6)") + .HasColumnName("createtime"); + + b.Property("Email") + .HasMaxLength(500) + .HasColumnType("varchar(500)") + .HasColumnName("email"); + + b.Property("LastLoginTime") + .HasColumnType("datetime(6)") + .HasColumnName("lastlogintime"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasColumnName("password"); + + b.Property("Phone") + .HasMaxLength(15) + .HasColumnType("varchar(15)") + .HasColumnName("phone"); + + b.Property("RealName") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasColumnName("realname"); + + b.Property("Status") + .HasColumnType("int") + .HasColumnName("status"); + + b.Property("UserName") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasColumnName("username"); + + b.HasKey("Id"); + + b.ToTable("systemusers"); + + b.HasData( + new + { + Id = 1, + CreateTime = new DateTime(2024, 1, 8, 9, 11, 44, 452, DateTimeKind.Local).AddTicks(5847), + Password = "96e79218965eb72c92a549dd5a330112", + RealName = "admin", + Status = 1, + UserName = "admin" + }); + }); + + modelBuilder.Entity("Hos.ScheduleMaster.Core.Models.TraceStatisticsEntity", b => + { + b.Property("DateNum") + .HasColumnType("int") + .HasColumnName("datenum"); + + b.Property("DateStamp") + .HasColumnType("bigint") + .HasColumnName("datestamp"); + + b.Property("Fail") + .HasColumnType("int") + .HasColumnName("fail"); + + b.Property("LastUpdateTime") + .HasColumnType("datetime(6)") + .HasColumnName("lastupdatetime"); + + b.Property("Other") + .HasColumnType("int") + .HasColumnName("other"); + + b.Property("Success") + .HasColumnType("int") + .HasColumnName("success"); + + b.HasKey("DateNum"); + + b.ToTable("tracestatistics"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/src/ScheduleMasterCore/Hos.ScheduleMaster.Core/Migrations/20240108011145_Init.cs b/src/ScheduleMasterCore/Hos.ScheduleMaster.Core/Migrations/20240108011145_Init.cs new file mode 100644 index 0000000..665444d --- /dev/null +++ b/src/ScheduleMasterCore/Hos.ScheduleMaster.Core/Migrations/20240108011145_Init.cs @@ -0,0 +1,415 @@ +using System; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +#pragma warning disable CA1814 // Prefer jagged arrays over multidimensional + +namespace Hos.ScheduleMaster.Core.Migrations +{ + /// + public partial class Init : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AlterDatabase() + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.CreateTable( + name: "scheduledelayeds", + columns: table => new + { + id = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), + sourceapp = table.Column(type: "varchar(50)", maxLength: 50, nullable: false) + .Annotation("MySql:CharSet", "utf8mb4"), + topic = table.Column(type: "varchar(100)", maxLength: 100, nullable: false) + .Annotation("MySql:CharSet", "utf8mb4"), + contentkey = table.Column(type: "varchar(100)", maxLength: 100, nullable: false) + .Annotation("MySql:CharSet", "utf8mb4"), + delaytimespan = table.Column(type: "int", nullable: false), + delayabsolutetime = table.Column(type: "datetime(6)", nullable: false), + createtime = table.Column(type: "datetime(6)", nullable: false), + createusername = table.Column(type: "varchar(50)", maxLength: 50, nullable: true) + .Annotation("MySql:CharSet", "utf8mb4"), + executetime = table.Column(type: "datetime(6)", nullable: true), + finishtime = table.Column(type: "datetime(6)", nullable: true), + status = table.Column(type: "int", nullable: false), + failedretrys = table.Column(type: "int", nullable: false), + remark = table.Column(type: "varchar(255)", maxLength: 255, nullable: true) + .Annotation("MySql:CharSet", "utf8mb4"), + notifyurl = table.Column(type: "varchar(255)", maxLength: 255, nullable: false) + .Annotation("MySql:CharSet", "utf8mb4"), + notifydatatype = table.Column(type: "varchar(50)", maxLength: 50, nullable: false) + .Annotation("MySql:CharSet", "utf8mb4"), + notifybody = table.Column(type: "varchar(1000)", maxLength: 1000, nullable: false) + .Annotation("MySql:CharSet", "utf8mb4") + }, + constraints: table => + { + table.PrimaryKey("PK_scheduledelayeds", x => x.id); + }) + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.CreateTable( + name: "scheduleexecutors", + columns: table => new + { + id = table.Column(type: "int", nullable: false) + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), + scheduleid = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), + workername = table.Column(type: "varchar(100)", maxLength: 100, nullable: true) + .Annotation("MySql:CharSet", "utf8mb4") + }, + constraints: table => + { + table.PrimaryKey("PK_scheduleexecutors", x => x.id); + }) + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.CreateTable( + name: "schedulehttpoptions", + columns: table => new + { + scheduleid = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), + requesturl = table.Column(type: "varchar(500)", maxLength: 500, nullable: false) + .Annotation("MySql:CharSet", "utf8mb4"), + method = table.Column(type: "varchar(10)", maxLength: 10, nullable: false) + .Annotation("MySql:CharSet", "utf8mb4"), + contenttype = table.Column(type: "varchar(50)", maxLength: 50, nullable: false) + .Annotation("MySql:CharSet", "utf8mb4"), + headers = table.Column(type: "longtext", nullable: true) + .Annotation("MySql:CharSet", "utf8mb4"), + body = table.Column(type: "longtext", nullable: true) + .Annotation("MySql:CharSet", "utf8mb4") + }, + constraints: table => + { + table.PrimaryKey("PK_schedulehttpoptions", x => x.scheduleid); + }) + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.CreateTable( + name: "schedulekeepers", + columns: table => new + { + id = table.Column(type: "int", nullable: false) + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), + scheduleid = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), + userid = table.Column(type: "int", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_schedulekeepers", x => x.id); + }) + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.CreateTable( + name: "schedulelocks", + columns: table => new + { + scheduleid = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), + status = table.Column(type: "int", nullable: false), + lockedtime = table.Column(type: "datetime(6)", nullable: true), + lockednode = table.Column(type: "varchar(100)", maxLength: 100, nullable: true) + .Annotation("MySql:CharSet", "utf8mb4") + }, + constraints: table => + { + table.PrimaryKey("PK_schedulelocks", x => x.scheduleid); + }) + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.CreateTable( + name: "schedulereferences", + columns: table => new + { + id = table.Column(type: "int", nullable: false) + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), + scheduleid = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), + childid = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci") + }, + constraints: table => + { + table.PrimaryKey("PK_schedulereferences", x => x.id); + }) + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.CreateTable( + name: "schedules", + columns: table => new + { + id = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), + title = table.Column(type: "varchar(100)", maxLength: 100, nullable: false) + .Annotation("MySql:CharSet", "utf8mb4"), + metatype = table.Column(type: "int", nullable: false), + remark = table.Column(type: "varchar(500)", maxLength: 500, nullable: true) + .Annotation("MySql:CharSet", "utf8mb4"), + runloop = table.Column(type: "tinyint(1)", nullable: false), + cronexpression = table.Column(type: "varchar(50)", maxLength: 50, nullable: true) + .Annotation("MySql:CharSet", "utf8mb4"), + assemblyname = table.Column(type: "varchar(200)", maxLength: 200, nullable: true) + .Annotation("MySql:CharSet", "utf8mb4"), + classname = table.Column(type: "varchar(200)", maxLength: 200, nullable: true) + .Annotation("MySql:CharSet", "utf8mb4"), + customparamsjson = table.Column(type: "longtext", nullable: true) + .Annotation("MySql:CharSet", "utf8mb4"), + status = table.Column(type: "int", nullable: false), + startdate = table.Column(type: "datetime(6)", nullable: true), + enddate = table.Column(type: "datetime(6)", nullable: true), + createtime = table.Column(type: "datetime(6)", nullable: false), + createuserid = table.Column(type: "int", nullable: false), + createusername = table.Column(type: "varchar(50)", maxLength: 50, nullable: true) + .Annotation("MySql:CharSet", "utf8mb4"), + lastruntime = table.Column(type: "datetime(6)", nullable: true), + nextruntime = table.Column(type: "datetime(6)", nullable: true), + totalruncount = table.Column(type: "int", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_schedules", x => x.id); + }) + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.CreateTable( + name: "scheduletraces", + columns: table => new + { + traceid = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), + scheduleid = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), + node = table.Column(type: "varchar(100)", maxLength: 100, nullable: true) + .Annotation("MySql:CharSet", "utf8mb4"), + starttime = table.Column(type: "datetime(6)", nullable: false), + endtime = table.Column(type: "datetime(6)", nullable: false), + elapsedtime = table.Column(type: "double", nullable: false), + result = table.Column(type: "int", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_scheduletraces", x => x.traceid); + }) + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.CreateTable( + name: "servernodes", + columns: table => new + { + nodename = table.Column(type: "varchar(100)", maxLength: 100, nullable: false) + .Annotation("MySql:CharSet", "utf8mb4"), + nodetype = table.Column(type: "varchar(20)", maxLength: 20, nullable: false) + .Annotation("MySql:CharSet", "utf8mb4"), + machinename = table.Column(type: "varchar(100)", maxLength: 100, nullable: true) + .Annotation("MySql:CharSet", "utf8mb4"), + accessprotocol = table.Column(type: "varchar(20)", maxLength: 20, nullable: false) + .Annotation("MySql:CharSet", "utf8mb4"), + host = table.Column(type: "varchar(100)", maxLength: 100, nullable: false) + .Annotation("MySql:CharSet", "utf8mb4"), + accesssecret = table.Column(type: "varchar(50)", maxLength: 50, nullable: true) + .Annotation("MySql:CharSet", "utf8mb4"), + lastupdatetime = table.Column(type: "datetime(6)", nullable: true), + status = table.Column(type: "int", nullable: false), + priority = table.Column(type: "int", nullable: false), + maxconcurrency = table.Column(type: "int", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_servernodes", x => x.nodename); + }) + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.CreateTable( + name: "systemconfigs", + columns: table => new + { + key = table.Column(type: "varchar(50)", maxLength: 50, nullable: false) + .Annotation("MySql:CharSet", "utf8mb4"), + group = table.Column(type: "varchar(50)", maxLength: 50, nullable: false) + .Annotation("MySql:CharSet", "utf8mb4"), + name = table.Column(type: "varchar(100)", maxLength: 100, nullable: false) + .Annotation("MySql:CharSet", "utf8mb4"), + value = table.Column(type: "varchar(1000)", maxLength: 1000, nullable: true) + .Annotation("MySql:CharSet", "utf8mb4"), + sort = table.Column(type: "int", nullable: false), + isreuired = table.Column(type: "tinyint(1)", nullable: false), + remark = table.Column(type: "varchar(500)", maxLength: 500, nullable: true) + .Annotation("MySql:CharSet", "utf8mb4"), + createtime = table.Column(type: "datetime(6)", nullable: false), + updatetime = table.Column(type: "datetime(6)", nullable: true), + updateusername = table.Column(type: "varchar(50)", maxLength: 50, nullable: true) + .Annotation("MySql:CharSet", "utf8mb4") + }, + constraints: table => + { + table.PrimaryKey("PK_systemconfigs", x => x.key); + }) + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.CreateTable( + name: "systemlogs", + columns: table => new + { + id = table.Column(type: "int", nullable: false) + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), + category = table.Column(type: "int", nullable: false), + message = table.Column(type: "longtext", nullable: false) + .Annotation("MySql:CharSet", "utf8mb4"), + stacktrace = table.Column(type: "longtext", nullable: true) + .Annotation("MySql:CharSet", "utf8mb4"), + scheduleid = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), + node = table.Column(type: "varchar(100)", maxLength: 100, nullable: true) + .Annotation("MySql:CharSet", "utf8mb4"), + traceid = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), + createtime = table.Column(type: "datetime(6)", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_systemlogs", x => x.id); + }) + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.CreateTable( + name: "systemusers", + columns: table => new + { + id = table.Column(type: "int", nullable: false) + .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), + username = table.Column(type: "varchar(50)", maxLength: 50, nullable: false) + .Annotation("MySql:CharSet", "utf8mb4"), + password = table.Column(type: "varchar(50)", maxLength: 50, nullable: false) + .Annotation("MySql:CharSet", "utf8mb4"), + realname = table.Column(type: "varchar(50)", maxLength: 50, nullable: false) + .Annotation("MySql:CharSet", "utf8mb4"), + phone = table.Column(type: "varchar(15)", maxLength: 15, nullable: true) + .Annotation("MySql:CharSet", "utf8mb4"), + email = table.Column(type: "varchar(500)", maxLength: 500, nullable: true) + .Annotation("MySql:CharSet", "utf8mb4"), + status = table.Column(type: "int", nullable: false), + createtime = table.Column(type: "datetime(6)", nullable: false), + lastlogintime = table.Column(type: "datetime(6)", nullable: true) + }, + constraints: table => + { + table.PrimaryKey("PK_systemusers", x => x.id); + }) + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.CreateTable( + name: "tracestatistics", + columns: table => new + { + datenum = table.Column(type: "int", nullable: false), + datestamp = table.Column(type: "bigint", nullable: false), + success = table.Column(type: "int", nullable: false), + fail = table.Column(type: "int", nullable: false), + other = table.Column(type: "int", nullable: false), + lastupdatetime = table.Column(type: "datetime(6)", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_tracestatistics", x => x.datenum); + }) + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.InsertData( + table: "systemconfigs", + columns: new[] { "key", "createtime", "group", "isreuired", "name", "remark", "sort", "updatetime", "updateusername", "value" }, + values: new object[,] + { + { "Assembly_ImagePullPolicy", new DateTime(2024, 1, 8, 9, 11, 44, 452, DateTimeKind.Local).AddTicks(6414), "程序集配置", true, "文件包拉取策略", "Always-总是拉取,IfNotPresent-本地没有时拉取,默认是Always", 1, null, null, "Always" }, + { "DelayTask_DelayPattern", new DateTime(2024, 1, 8, 9, 11, 44, 452, DateTimeKind.Local).AddTicks(6418), "延时任务配置", true, "延迟模式", "Relative-相对时间,Absolute-绝对时间,默认值是Relative", 1, null, null, "Relative" }, + { "DelayTask_RetrySpans", new DateTime(2024, 1, 8, 9, 11, 44, 452, DateTimeKind.Local).AddTicks(6420), "延时任务配置", true, "回调失败重试间隔", "回调失败重试间隔时间(s),会随着重试次数递增,默认值是10秒", 3, null, null, "10" }, + { "DelayTask_RetryTimes", new DateTime(2024, 1, 8, 9, 11, 44, 452, DateTimeKind.Local).AddTicks(6419), "延时任务配置", true, "回调失败重试次数", "回调失败重试次数,默认值是3", 2, null, null, "3" }, + { "Email_FromAccount", new DateTime(2024, 1, 8, 9, 11, 44, 452, DateTimeKind.Local).AddTicks(6412), "邮件配置", true, "发件人账号", "邮箱账号", 3, null, null, "" }, + { "Email_FromAccountPwd", new DateTime(2024, 1, 8, 9, 11, 44, 452, DateTimeKind.Local).AddTicks(6413), "邮件配置", true, "发件人账号密码", "登录密码或授权码等", 4, null, null, "" }, + { "Email_SmtpPort", new DateTime(2024, 1, 8, 9, 11, 44, 452, DateTimeKind.Local).AddTicks(6411), "邮件配置", true, "邮件服务器端口", "smtp端口号", 2, null, null, "" }, + { "Email_SmtpServer", new DateTime(2024, 1, 8, 9, 11, 44, 452, DateTimeKind.Local).AddTicks(6406), "邮件配置", true, "邮件服务器", "smtp服务器地址", 1, null, null, "" }, + { "Http_RequestTimeout", new DateTime(2024, 1, 8, 9, 11, 44, 452, DateTimeKind.Local).AddTicks(6415), "HTTP配置", true, "请求超时时间", "单位是秒,默认值是10", 1, null, null, "10" }, + { "System_WorkerUnHealthTimes", new DateTime(2024, 1, 8, 9, 11, 44, 452, DateTimeKind.Local).AddTicks(6416), "系统配置", true, "Worker允许无响应次数", "健康检查失败达到最大次数会被下线剔除,默认值是3", 1, null, null, "3" } + }); + + migrationBuilder.InsertData( + table: "systemusers", + columns: new[] { "id", "createtime", "email", "lastlogintime", "password", "phone", "realname", "status", "username" }, + values: new object[] { 1, new DateTime(2024, 1, 8, 9, 11, 44, 452, DateTimeKind.Local).AddTicks(5847), null, null, "96e79218965eb72c92a549dd5a330112", null, "admin", 1, "admin" }); + + migrationBuilder.CreateIndex( + name: "scheduledelayeds_contentkey_index", + table: "scheduledelayeds", + column: "contentkey"); + + migrationBuilder.CreateIndex( + name: "scheduledelayeds_createtime_index", + table: "scheduledelayeds", + column: "createtime"); + + migrationBuilder.CreateIndex( + name: "scheduletraces_result_index", + table: "scheduletraces", + column: "result"); + + migrationBuilder.CreateIndex( + name: "scheduletraces_scheduleid_index", + table: "scheduletraces", + column: "scheduleid"); + + migrationBuilder.CreateIndex( + name: "scheduletraces_starttime_index", + table: "scheduletraces", + column: "starttime"); + + migrationBuilder.CreateIndex( + name: "systemlogs_createtime_index", + table: "systemlogs", + column: "createtime"); + + migrationBuilder.CreateIndex( + name: "systemlogs_traceid_index", + table: "systemlogs", + column: "traceid"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "scheduledelayeds"); + + migrationBuilder.DropTable( + name: "scheduleexecutors"); + + migrationBuilder.DropTable( + name: "schedulehttpoptions"); + + migrationBuilder.DropTable( + name: "schedulekeepers"); + + migrationBuilder.DropTable( + name: "schedulelocks"); + + migrationBuilder.DropTable( + name: "schedulereferences"); + + migrationBuilder.DropTable( + name: "schedules"); + + migrationBuilder.DropTable( + name: "scheduletraces"); + + migrationBuilder.DropTable( + name: "servernodes"); + + migrationBuilder.DropTable( + name: "systemconfigs"); + + migrationBuilder.DropTable( + name: "systemlogs"); + + migrationBuilder.DropTable( + name: "systemusers"); + + migrationBuilder.DropTable( + name: "tracestatistics"); + } + } +} diff --git a/src/ScheduleMasterCore/Hos.ScheduleMaster.Core/Migrations/SmDbContextModelSnapshot.cs b/src/ScheduleMasterCore/Hos.ScheduleMaster.Core/Migrations/SmDbContextModelSnapshot.cs index 2b75da7..cf2cf8e 100644 --- a/src/ScheduleMasterCore/Hos.ScheduleMaster.Core/Migrations/SmDbContextModelSnapshot.cs +++ b/src/ScheduleMasterCore/Hos.ScheduleMaster.Core/Migrations/SmDbContextModelSnapshot.cs @@ -5,6 +5,8 @@ using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +#nullable disable + namespace Hos.ScheduleMaster.Core.Migrations { [DbContext(typeof(SmDbContext))] @@ -14,92 +16,98 @@ protected override void BuildModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder - .HasAnnotation("ProductVersion", "3.0.0") + .HasAnnotation("ProductVersion", "7.0.14") .HasAnnotation("Relational:MaxIdentifierLength", 64); modelBuilder.Entity("Hos.ScheduleMaster.Core.Models.ScheduleDelayedEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() - .HasColumnName("id") - .HasColumnType("char(36)"); + .HasColumnType("char(36)") + .HasColumnName("id"); b.Property("ContentKey") .IsRequired() - .HasColumnName("contentkey") - .HasColumnType("varchar(100) CHARACTER SET utf8mb4") - .HasMaxLength(100); + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnName("contentkey"); b.Property("CreateTime") - .HasColumnName("createtime") - .HasColumnType("datetime(6)"); + .HasColumnType("datetime(6)") + .HasColumnName("createtime"); b.Property("CreateUserName") - .HasColumnName("createusername") - .HasColumnType("varchar(50) CHARACTER SET utf8mb4") - .HasMaxLength(50); + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasColumnName("createusername"); b.Property("DelayAbsoluteTime") - .HasColumnName("delayabsolutetime") - .HasColumnType("datetime(6)"); + .HasColumnType("datetime(6)") + .HasColumnName("delayabsolutetime"); b.Property("DelayTimeSpan") - .HasColumnName("delaytimespan") - .HasColumnType("int"); + .HasColumnType("int") + .HasColumnName("delaytimespan"); b.Property("ExecuteTime") - .HasColumnName("executetime") - .HasColumnType("datetime(6)"); + .HasColumnType("datetime(6)") + .HasColumnName("executetime"); b.Property("FailedRetrys") - .HasColumnName("failedretrys") - .HasColumnType("int"); + .HasColumnType("int") + .HasColumnName("failedretrys"); b.Property("FinishTime") - .HasColumnName("finishtime") - .HasColumnType("datetime(6)"); + .HasColumnType("datetime(6)") + .HasColumnName("finishtime"); b.Property("NotifyBody") .IsRequired() - .HasColumnName("notifybody") - .HasColumnType("varchar(1000) CHARACTER SET utf8mb4") - .HasMaxLength(1000); + .HasMaxLength(1000) + .HasColumnType("varchar(1000)") + .HasColumnName("notifybody"); b.Property("NotifyDataType") .IsRequired() - .HasColumnName("notifydatatype") - .HasColumnType("varchar(50) CHARACTER SET utf8mb4") - .HasMaxLength(50); + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasColumnName("notifydatatype"); b.Property("NotifyUrl") .IsRequired() - .HasColumnName("notifyurl") - .HasColumnType("varchar(255) CHARACTER SET utf8mb4") - .HasMaxLength(255); + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasColumnName("notifyurl"); b.Property("Remark") - .HasColumnName("remark") - .HasColumnType("varchar(255) CHARACTER SET utf8mb4") - .HasMaxLength(255); + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasColumnName("remark"); b.Property("SourceApp") .IsRequired() - .HasColumnName("sourceapp") - .HasColumnType("varchar(50) CHARACTER SET utf8mb4") - .HasMaxLength(50); + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasColumnName("sourceapp"); b.Property("Status") - .HasColumnName("status") - .HasColumnType("int"); + .HasColumnType("int") + .HasColumnName("status"); b.Property("Topic") .IsRequired() - .HasColumnName("topic") - .HasColumnType("varchar(100) CHARACTER SET utf8mb4") - .HasMaxLength(100); + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnName("topic"); b.HasKey("Id"); + b.HasIndex("ContentKey") + .HasDatabaseName("scheduledelayeds_contentkey_index"); + + b.HasIndex("CreateTime") + .HasDatabaseName("scheduledelayeds_createtime_index"); + b.ToTable("scheduledelayeds"); }); @@ -107,83 +115,83 @@ protected override void BuildModel(ModelBuilder modelBuilder) { b.Property("Id") .ValueGeneratedOnAdd() - .HasColumnName("id") - .HasColumnType("char(36)"); + .HasColumnType("char(36)") + .HasColumnName("id"); b.Property("AssemblyName") - .HasColumnName("assemblyname") - .HasColumnType("varchar(200) CHARACTER SET utf8mb4") - .HasMaxLength(200); + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnName("assemblyname"); b.Property("ClassName") - .HasColumnName("classname") - .HasColumnType("varchar(200) CHARACTER SET utf8mb4") - .HasMaxLength(200); + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnName("classname"); b.Property("CreateTime") - .HasColumnName("createtime") - .HasColumnType("datetime(6)"); + .HasColumnType("datetime(6)") + .HasColumnName("createtime"); b.Property("CreateUserId") - .HasColumnName("createuserid") - .HasColumnType("int"); + .HasColumnType("int") + .HasColumnName("createuserid"); b.Property("CreateUserName") - .HasColumnName("createusername") - .HasColumnType("varchar(50) CHARACTER SET utf8mb4") - .HasMaxLength(50); + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasColumnName("createusername"); b.Property("CronExpression") - .HasColumnName("cronexpression") - .HasColumnType("varchar(50) CHARACTER SET utf8mb4") - .HasMaxLength(50); + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasColumnName("cronexpression"); b.Property("CustomParamsJson") - .HasColumnName("customparamsjson") - .HasColumnType("longtext CHARACTER SET utf8mb4"); + .HasColumnType("longtext") + .HasColumnName("customparamsjson"); b.Property("EndDate") - .HasColumnName("enddate") - .HasColumnType("datetime(6)"); + .HasColumnType("datetime(6)") + .HasColumnName("enddate"); b.Property("LastRunTime") - .HasColumnName("lastruntime") - .HasColumnType("datetime(6)"); + .HasColumnType("datetime(6)") + .HasColumnName("lastruntime"); b.Property("MetaType") - .HasColumnName("metatype") - .HasColumnType("int"); + .HasColumnType("int") + .HasColumnName("metatype"); b.Property("NextRunTime") - .HasColumnName("nextruntime") - .HasColumnType("datetime(6)"); + .HasColumnType("datetime(6)") + .HasColumnName("nextruntime"); b.Property("Remark") - .HasColumnName("remark") - .HasColumnType("varchar(500) CHARACTER SET utf8mb4") - .HasMaxLength(500); + .HasMaxLength(500) + .HasColumnType("varchar(500)") + .HasColumnName("remark"); b.Property("RunLoop") - .HasColumnName("runloop") - .HasColumnType("tinyint(1)"); + .HasColumnType("tinyint(1)") + .HasColumnName("runloop"); b.Property("StartDate") - .HasColumnName("startdate") - .HasColumnType("datetime(6)"); + .HasColumnType("datetime(6)") + .HasColumnName("startdate"); b.Property("Status") - .HasColumnName("status") - .HasColumnType("int"); + .HasColumnType("int") + .HasColumnName("status"); b.Property("Title") .IsRequired() - .HasColumnName("title") - .HasColumnType("varchar(100) CHARACTER SET utf8mb4") - .HasMaxLength(100); + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnName("title"); b.Property("TotalRunCount") - .HasColumnName("totalruncount") - .HasColumnType("int"); + .HasColumnType("int") + .HasColumnName("totalruncount"); b.HasKey("Id"); @@ -194,17 +202,17 @@ protected override void BuildModel(ModelBuilder modelBuilder) { b.Property("Id") .ValueGeneratedOnAdd() - .HasColumnName("id") - .HasColumnType("int"); + .HasColumnType("int") + .HasColumnName("id"); b.Property("ScheduleId") - .HasColumnName("scheduleid") - .HasColumnType("char(36)"); + .HasColumnType("char(36)") + .HasColumnName("scheduleid"); b.Property("WorkerName") - .HasColumnName("workername") - .HasColumnType("varchar(100) CHARACTER SET utf8mb4") - .HasMaxLength(100); + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnName("workername"); b.HasKey("Id"); @@ -215,34 +223,34 @@ protected override void BuildModel(ModelBuilder modelBuilder) { b.Property("ScheduleId") .ValueGeneratedOnAdd() - .HasColumnName("scheduleid") - .HasColumnType("char(36)"); + .HasColumnType("char(36)") + .HasColumnName("scheduleid"); b.Property("Body") - .HasColumnName("body") - .HasColumnType("longtext CHARACTER SET utf8mb4"); + .HasColumnType("longtext") + .HasColumnName("body"); b.Property("ContentType") .IsRequired() - .HasColumnName("contenttype") - .HasColumnType("varchar(50) CHARACTER SET utf8mb4") - .HasMaxLength(50); + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasColumnName("contenttype"); b.Property("Headers") - .HasColumnName("headers") - .HasColumnType("longtext CHARACTER SET utf8mb4"); + .HasColumnType("longtext") + .HasColumnName("headers"); b.Property("Method") .IsRequired() - .HasColumnName("method") - .HasColumnType("varchar(10) CHARACTER SET utf8mb4") - .HasMaxLength(10); + .HasMaxLength(10) + .HasColumnType("varchar(10)") + .HasColumnName("method"); b.Property("RequestUrl") .IsRequired() - .HasColumnName("requesturl") - .HasColumnType("varchar(500) CHARACTER SET utf8mb4") - .HasMaxLength(500); + .HasMaxLength(500) + .HasColumnType("varchar(500)") + .HasColumnName("requesturl"); b.HasKey("ScheduleId"); @@ -253,16 +261,16 @@ protected override void BuildModel(ModelBuilder modelBuilder) { b.Property("Id") .ValueGeneratedOnAdd() - .HasColumnName("id") - .HasColumnType("int"); + .HasColumnType("int") + .HasColumnName("id"); b.Property("ScheduleId") - .HasColumnName("scheduleid") - .HasColumnType("char(36)"); + .HasColumnType("char(36)") + .HasColumnName("scheduleid"); b.Property("UserId") - .HasColumnName("userid") - .HasColumnType("int"); + .HasColumnType("int") + .HasColumnName("userid"); b.HasKey("Id"); @@ -273,21 +281,21 @@ protected override void BuildModel(ModelBuilder modelBuilder) { b.Property("ScheduleId") .ValueGeneratedOnAdd() - .HasColumnName("scheduleid") - .HasColumnType("char(36)"); + .HasColumnType("char(36)") + .HasColumnName("scheduleid"); b.Property("LockedNode") - .HasColumnName("lockednode") - .HasColumnType("varchar(100) CHARACTER SET utf8mb4") - .HasMaxLength(100); + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnName("lockednode"); b.Property("LockedTime") - .HasColumnName("lockedtime") - .HasColumnType("datetime(6)"); + .HasColumnType("datetime(6)") + .HasColumnName("lockedtime"); b.Property("Status") - .HasColumnName("status") - .HasColumnType("int"); + .HasColumnType("int") + .HasColumnName("status"); b.HasKey("ScheduleId"); @@ -298,16 +306,16 @@ protected override void BuildModel(ModelBuilder modelBuilder) { b.Property("Id") .ValueGeneratedOnAdd() - .HasColumnName("id") - .HasColumnType("int"); + .HasColumnType("int") + .HasColumnName("id"); b.Property("ChildId") - .HasColumnName("childid") - .HasColumnType("char(36)"); + .HasColumnType("char(36)") + .HasColumnName("childid"); b.Property("ScheduleId") - .HasColumnName("scheduleid") - .HasColumnType("char(36)"); + .HasColumnType("char(36)") + .HasColumnName("scheduleid"); b.HasKey("Id"); @@ -318,85 +326,98 @@ protected override void BuildModel(ModelBuilder modelBuilder) { b.Property("TraceId") .ValueGeneratedOnAdd() - .HasColumnName("traceid") - .HasColumnType("char(36)"); + .HasColumnType("char(36)") + .HasColumnName("traceid"); b.Property("ElapsedTime") - .HasColumnName("elapsedtime") - .HasColumnType("double"); + .HasColumnType("double") + .HasColumnName("elapsedtime"); b.Property("EndTime") - .HasColumnName("endtime") - .HasColumnType("datetime(6)"); + .HasColumnType("datetime(6)") + .HasColumnName("endtime"); b.Property("Node") - .HasColumnName("node") - .HasColumnType("varchar(100) CHARACTER SET utf8mb4") - .HasMaxLength(100); + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnName("node"); b.Property("Result") - .HasColumnName("result") - .HasColumnType("int"); + .HasColumnType("int") + .HasColumnName("result"); b.Property("ScheduleId") - .HasColumnName("scheduleid") - .HasColumnType("char(36)"); + .HasColumnType("char(36)") + .HasColumnName("scheduleid"); b.Property("StartTime") - .HasColumnName("starttime") - .HasColumnType("datetime(6)"); + .HasColumnType("datetime(6)") + .HasColumnName("starttime"); b.HasKey("TraceId"); + b.HasIndex("Result") + .HasDatabaseName("scheduletraces_result_index"); + + b.HasIndex("ScheduleId") + .HasDatabaseName("scheduletraces_scheduleid_index"); + + b.HasIndex("StartTime") + .HasDatabaseName("scheduletraces_starttime_index"); + b.ToTable("scheduletraces"); }); modelBuilder.Entity("Hos.ScheduleMaster.Core.Models.ServerNodeEntity", b => { b.Property("NodeName") - .HasColumnName("nodename") - .HasColumnType("varchar(100) CHARACTER SET utf8mb4") - .HasMaxLength(100); + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnName("nodename"); b.Property("AccessProtocol") .IsRequired() - .HasColumnName("accessprotocol") - .HasColumnType("varchar(20) CHARACTER SET utf8mb4") - .HasMaxLength(20); + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasColumnName("accessprotocol"); b.Property("AccessSecret") - .HasColumnName("accesssecret") - .HasColumnType("varchar(50) CHARACTER SET utf8mb4") - .HasMaxLength(50); + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasColumnName("accesssecret"); b.Property("Host") .IsRequired() - .HasColumnName("host") - .HasColumnType("varchar(100) CHARACTER SET utf8mb4") - .HasMaxLength(100); + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnName("host"); b.Property("LastUpdateTime") - .HasColumnName("lastupdatetime") - .HasColumnType("datetime(6)"); + .HasColumnType("datetime(6)") + .HasColumnName("lastupdatetime"); b.Property("MachineName") - .HasColumnName("machinename") - .HasColumnType("varchar(100) CHARACTER SET utf8mb4") - .HasMaxLength(100); + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnName("machinename"); + + b.Property("MaxConcurrency") + .HasColumnType("int") + .HasColumnName("maxconcurrency"); b.Property("NodeType") .IsRequired() - .HasColumnName("nodetype") - .HasColumnType("varchar(20) CHARACTER SET utf8mb4") - .HasMaxLength(20); + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasColumnName("nodetype"); b.Property("Priority") - .HasColumnName("priority") - .HasColumnType("int"); + .HasColumnType("int") + .HasColumnName("priority"); b.Property("Status") - .HasColumnName("status") - .HasColumnType("int"); + .HasColumnType("int") + .HasColumnName("status"); b.HasKey("NodeName"); @@ -406,52 +427,52 @@ protected override void BuildModel(ModelBuilder modelBuilder) modelBuilder.Entity("Hos.ScheduleMaster.Core.Models.SystemConfigEntity", b => { b.Property("Key") - .HasColumnName("key") - .HasColumnType("varchar(50) CHARACTER SET utf8mb4") - .HasMaxLength(50); + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasColumnName("key"); b.Property("CreateTime") - .HasColumnName("createtime") - .HasColumnType("datetime(6)"); + .HasColumnType("datetime(6)") + .HasColumnName("createtime"); b.Property("Group") .IsRequired() - .HasColumnName("group") - .HasColumnType("varchar(50) CHARACTER SET utf8mb4") - .HasMaxLength(50); + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasColumnName("group"); b.Property("IsReuired") - .HasColumnName("isreuired") - .HasColumnType("tinyint(1)"); + .HasColumnType("tinyint(1)") + .HasColumnName("isreuired"); b.Property("Name") .IsRequired() - .HasColumnName("name") - .HasColumnType("varchar(100) CHARACTER SET utf8mb4") - .HasMaxLength(100); + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnName("name"); b.Property("Remark") - .HasColumnName("remark") - .HasColumnType("varchar(500) CHARACTER SET utf8mb4") - .HasMaxLength(500); + .HasMaxLength(500) + .HasColumnType("varchar(500)") + .HasColumnName("remark"); b.Property("Sort") - .HasColumnName("sort") - .HasColumnType("int"); + .HasColumnType("int") + .HasColumnName("sort"); b.Property("UpdateTime") - .HasColumnName("updatetime") - .HasColumnType("datetime(6)"); + .HasColumnType("datetime(6)") + .HasColumnName("updatetime"); b.Property("UpdateUserName") - .HasColumnName("updateusername") - .HasColumnType("varchar(50) CHARACTER SET utf8mb4") - .HasMaxLength(50); + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasColumnName("updateusername"); b.Property("Value") - .HasColumnName("value") - .HasColumnType("varchar(1000) CHARACTER SET utf8mb4") - .HasMaxLength(1000); + .HasMaxLength(1000) + .HasColumnType("varchar(1000)") + .HasColumnName("value"); b.HasKey("Key"); @@ -461,7 +482,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) new { Key = "Email_SmtpServer", - CreateTime = new DateTime(2020, 6, 22, 11, 50, 44, 616, DateTimeKind.Local).AddTicks(3140), + CreateTime = new DateTime(2024, 1, 8, 9, 11, 44, 452, DateTimeKind.Local).AddTicks(6406), Group = "邮件配置", IsReuired = true, Name = "邮件服务器", @@ -472,7 +493,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) new { Key = "Email_SmtpPort", - CreateTime = new DateTime(2020, 6, 22, 11, 50, 44, 616, DateTimeKind.Local).AddTicks(7556), + CreateTime = new DateTime(2024, 1, 8, 9, 11, 44, 452, DateTimeKind.Local).AddTicks(6411), Group = "邮件配置", IsReuired = true, Name = "邮件服务器端口", @@ -483,7 +504,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) new { Key = "Email_FromAccount", - CreateTime = new DateTime(2020, 6, 22, 11, 50, 44, 616, DateTimeKind.Local).AddTicks(7631), + CreateTime = new DateTime(2024, 1, 8, 9, 11, 44, 452, DateTimeKind.Local).AddTicks(6412), Group = "邮件配置", IsReuired = true, Name = "发件人账号", @@ -494,7 +515,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) new { Key = "Email_FromAccountPwd", - CreateTime = new DateTime(2020, 6, 22, 11, 50, 44, 616, DateTimeKind.Local).AddTicks(7634), + CreateTime = new DateTime(2024, 1, 8, 9, 11, 44, 452, DateTimeKind.Local).AddTicks(6413), Group = "邮件配置", IsReuired = true, Name = "发件人账号密码", @@ -505,7 +526,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) new { Key = "Assembly_ImagePullPolicy", - CreateTime = new DateTime(2020, 6, 22, 11, 50, 44, 616, DateTimeKind.Local).AddTicks(7637), + CreateTime = new DateTime(2024, 1, 8, 9, 11, 44, 452, DateTimeKind.Local).AddTicks(6414), Group = "程序集配置", IsReuired = true, Name = "文件包拉取策略", @@ -516,7 +537,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) new { Key = "Http_RequestTimeout", - CreateTime = new DateTime(2020, 6, 22, 11, 50, 44, 616, DateTimeKind.Local).AddTicks(7638), + CreateTime = new DateTime(2024, 1, 8, 9, 11, 44, 452, DateTimeKind.Local).AddTicks(6415), Group = "HTTP配置", IsReuired = true, Name = "请求超时时间", @@ -527,7 +548,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) new { Key = "System_WorkerUnHealthTimes", - CreateTime = new DateTime(2020, 6, 22, 11, 50, 44, 616, DateTimeKind.Local).AddTicks(7641), + CreateTime = new DateTime(2024, 1, 8, 9, 11, 44, 452, DateTimeKind.Local).AddTicks(6416), Group = "系统配置", IsReuired = true, Name = "Worker允许无响应次数", @@ -538,7 +559,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) new { Key = "DelayTask_DelayPattern", - CreateTime = new DateTime(2020, 6, 22, 11, 50, 44, 616, DateTimeKind.Local).AddTicks(7643), + CreateTime = new DateTime(2024, 1, 8, 9, 11, 44, 452, DateTimeKind.Local).AddTicks(6418), Group = "延时任务配置", IsReuired = true, Name = "延迟模式", @@ -549,7 +570,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) new { Key = "DelayTask_RetryTimes", - CreateTime = new DateTime(2020, 6, 22, 11, 50, 44, 616, DateTimeKind.Local).AddTicks(7644), + CreateTime = new DateTime(2024, 1, 8, 9, 11, 44, 452, DateTimeKind.Local).AddTicks(6419), Group = "延时任务配置", IsReuired = true, Name = "回调失败重试次数", @@ -560,7 +581,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) new { Key = "DelayTask_RetrySpans", - CreateTime = new DateTime(2020, 6, 22, 11, 50, 44, 616, DateTimeKind.Local).AddTicks(7646), + CreateTime = new DateTime(2024, 1, 8, 9, 11, 44, 452, DateTimeKind.Local).AddTicks(6420), Group = "延时任务配置", IsReuired = true, Name = "回调失败重试间隔", @@ -574,41 +595,47 @@ protected override void BuildModel(ModelBuilder modelBuilder) { b.Property("Id") .ValueGeneratedOnAdd() - .HasColumnName("id") - .HasColumnType("int"); + .HasColumnType("int") + .HasColumnName("id"); b.Property("Category") - .HasColumnName("category") - .HasColumnType("int"); + .HasColumnType("int") + .HasColumnName("category"); b.Property("CreateTime") - .HasColumnName("createtime") - .HasColumnType("datetime(6)"); + .HasColumnType("datetime(6)") + .HasColumnName("createtime"); b.Property("Message") .IsRequired() - .HasColumnName("message") - .HasColumnType("longtext CHARACTER SET utf8mb4"); + .HasColumnType("longtext") + .HasColumnName("message"); b.Property("Node") - .HasColumnName("node") - .HasColumnType("varchar(100) CHARACTER SET utf8mb4") - .HasMaxLength(100); + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnName("node"); b.Property("ScheduleId") - .HasColumnName("scheduleid") - .HasColumnType("char(36)"); + .HasColumnType("char(36)") + .HasColumnName("scheduleid"); b.Property("StackTrace") - .HasColumnName("stacktrace") - .HasColumnType("longtext CHARACTER SET utf8mb4"); + .HasColumnType("longtext") + .HasColumnName("stacktrace"); b.Property("TraceId") - .HasColumnName("traceid") - .HasColumnType("char(36)"); + .HasColumnType("char(36)") + .HasColumnName("traceid"); b.HasKey("Id"); + b.HasIndex("CreateTime") + .HasDatabaseName("systemlogs_createtime_index"); + + b.HasIndex("TraceId") + .HasDatabaseName("systemlogs_traceid_index"); + b.ToTable("systemlogs"); }); @@ -616,48 +643,48 @@ protected override void BuildModel(ModelBuilder modelBuilder) { b.Property("Id") .ValueGeneratedOnAdd() - .HasColumnName("id") - .HasColumnType("int"); + .HasColumnType("int") + .HasColumnName("id"); b.Property("CreateTime") - .HasColumnName("createtime") - .HasColumnType("datetime(6)"); + .HasColumnType("datetime(6)") + .HasColumnName("createtime"); b.Property("Email") - .HasColumnName("email") - .HasColumnType("varchar(500) CHARACTER SET utf8mb4") - .HasMaxLength(500); + .HasMaxLength(500) + .HasColumnType("varchar(500)") + .HasColumnName("email"); b.Property("LastLoginTime") - .HasColumnName("lastlogintime") - .HasColumnType("datetime(6)"); + .HasColumnType("datetime(6)") + .HasColumnName("lastlogintime"); b.Property("Password") .IsRequired() - .HasColumnName("password") - .HasColumnType("varchar(50) CHARACTER SET utf8mb4") - .HasMaxLength(50); + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasColumnName("password"); b.Property("Phone") - .HasColumnName("phone") - .HasColumnType("varchar(15) CHARACTER SET utf8mb4") - .HasMaxLength(15); + .HasMaxLength(15) + .HasColumnType("varchar(15)") + .HasColumnName("phone"); b.Property("RealName") .IsRequired() - .HasColumnName("realname") - .HasColumnType("varchar(50) CHARACTER SET utf8mb4") - .HasMaxLength(50); + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasColumnName("realname"); b.Property("Status") - .HasColumnName("status") - .HasColumnType("int"); + .HasColumnType("int") + .HasColumnName("status"); b.Property("UserName") .IsRequired() - .HasColumnName("username") - .HasColumnType("varchar(50) CHARACTER SET utf8mb4") - .HasMaxLength(50); + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasColumnName("username"); b.HasKey("Id"); @@ -667,7 +694,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) new { Id = 1, - CreateTime = new DateTime(2020, 6, 22, 11, 50, 44, 608, DateTimeKind.Local).AddTicks(3312), + CreateTime = new DateTime(2024, 1, 8, 9, 11, 44, 452, DateTimeKind.Local).AddTicks(5847), Password = "96e79218965eb72c92a549dd5a330112", RealName = "admin", Status = 1, @@ -678,28 +705,28 @@ protected override void BuildModel(ModelBuilder modelBuilder) modelBuilder.Entity("Hos.ScheduleMaster.Core.Models.TraceStatisticsEntity", b => { b.Property("DateNum") - .HasColumnName("datenum") - .HasColumnType("int"); + .HasColumnType("int") + .HasColumnName("datenum"); b.Property("DateStamp") - .HasColumnName("datestamp") - .HasColumnType("bigint"); + .HasColumnType("bigint") + .HasColumnName("datestamp"); b.Property("Fail") - .HasColumnName("fail") - .HasColumnType("int"); + .HasColumnType("int") + .HasColumnName("fail"); b.Property("LastUpdateTime") - .HasColumnName("lastupdatetime") - .HasColumnType("datetime(6)"); + .HasColumnType("datetime(6)") + .HasColumnName("lastupdatetime"); b.Property("Other") - .HasColumnName("other") - .HasColumnType("int"); + .HasColumnType("int") + .HasColumnName("other"); b.Property("Success") - .HasColumnName("success") - .HasColumnType("int"); + .HasColumnType("int") + .HasColumnName("success"); b.HasKey("DateNum"); diff --git a/src/ScheduleMasterCore/Hos.ScheduleMaster.Core/ServiceProviderWrapper.cs b/src/ScheduleMasterCore/Hos.ScheduleMaster.Core/ServiceProviderWrapper.cs index acf02db..cc74664 100644 --- a/src/ScheduleMasterCore/Hos.ScheduleMaster.Core/ServiceProviderWrapper.cs +++ b/src/ScheduleMasterCore/Hos.ScheduleMaster.Core/ServiceProviderWrapper.cs @@ -1,7 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Text; -using Hos.ScheduleMaster.Core.Models; +using Hos.ScheduleMaster.Core.Models; using Microsoft.Extensions.DependencyInjection; namespace Hos.ScheduleMaster.Core diff --git a/src/ScheduleMasterCore/Hos.ScheduleMaster.Core/ServiceResponseMessage.cs b/src/ScheduleMasterCore/Hos.ScheduleMaster.Core/ServiceResponseMessage.cs index e2ae64c..ea51066 100644 --- a/src/ScheduleMasterCore/Hos.ScheduleMaster.Core/ServiceResponseMessage.cs +++ b/src/ScheduleMasterCore/Hos.ScheduleMaster.Core/ServiceResponseMessage.cs @@ -1,7 +1,4 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Text; +using System.ComponentModel; namespace Hos.ScheduleMaster.Core { diff --git a/src/ScheduleMasterCore/Hos.ScheduleMaster.Demo/Hos.ScheduleMaster.Demo.csproj b/src/ScheduleMasterCore/Hos.ScheduleMaster.Demo/Hos.ScheduleMaster.Demo.csproj index 54afb2a..992629d 100644 --- a/src/ScheduleMasterCore/Hos.ScheduleMaster.Demo/Hos.ScheduleMaster.Demo.csproj +++ b/src/ScheduleMasterCore/Hos.ScheduleMaster.Demo/Hos.ScheduleMaster.Demo.csproj @@ -1,21 +1,23 @@  - - netcoreapp3.1 - + + net6.0 + enable + disable + - - - + + + - - - + + + - - - Always - - + + + Always + + diff --git a/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/AppStart/AppLifetimeHostedService.cs b/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/AppStart/AppLifetimeHostedService.cs index 4bff940..663c01f 100644 --- a/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/AppStart/AppLifetimeHostedService.cs +++ b/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/AppStart/AppLifetimeHostedService.cs @@ -1,13 +1,5 @@ using Hos.ScheduleMaster.Core; using Hos.ScheduleMaster.Core.Common; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.Hosting; -using Microsoft.Extensions.Logging; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading; -using System.Threading.Tasks; namespace Hos.ScheduleMaster.QuartzHost.AppStart { diff --git a/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/AppStart/BackgroundTimerHostedService.cs b/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/AppStart/BackgroundTimerHostedService.cs index a5085d4..7109148 100644 --- a/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/AppStart/BackgroundTimerHostedService.cs +++ b/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/AppStart/BackgroundTimerHostedService.cs @@ -1,12 +1,4 @@ -using Microsoft.Extensions.Hosting; -using Microsoft.Extensions.Logging; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading; -using System.Threading.Tasks; - -namespace Hos.ScheduleMaster.QuartzHost.AppStart +namespace Hos.ScheduleMaster.QuartzHost.AppStart { public abstract class BackgroundTimerHostedService : IHostedService, IDisposable { diff --git a/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/AppStart/TaskClearJob.cs b/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/AppStart/TaskClearJob.cs index 4d1e14d..407e001 100644 --- a/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/AppStart/TaskClearJob.cs +++ b/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/AppStart/TaskClearJob.cs @@ -2,10 +2,6 @@ using Hos.ScheduleMaster.Core.Models; using Hos.ScheduleMaster.QuartzHost.Common; using Quartz; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; namespace Hos.ScheduleMaster.QuartzHost.AppStart { diff --git a/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/Common/AssemblyHelper.cs b/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/Common/AssemblyHelper.cs index 9d2a182..49f0ec2 100644 --- a/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/Common/AssemblyHelper.cs +++ b/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/Common/AssemblyHelper.cs @@ -1,14 +1,7 @@ using Hos.ScheduleMaster.Base; using Hos.ScheduleMaster.Core; using Hos.ScheduleMaster.Core.Common; -using Hos.ScheduleMaster.Core.Log; -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; using System.Reflection; -using System.Runtime.Loader; -using System.Web; namespace Hos.ScheduleMaster.QuartzHost.Common { diff --git a/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/Common/QuartzManager.cs b/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/Common/QuartzManager.cs index bc6e861..d9f746a 100644 --- a/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/Common/QuartzManager.cs +++ b/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/Common/QuartzManager.cs @@ -1,25 +1,15 @@  +using Hos.ScheduleMaster.Core; +using Hos.ScheduleMaster.Core.Common; using Hos.ScheduleMaster.Core.Log; +using Hos.ScheduleMaster.Core.Models; +using Hos.ScheduleMaster.QuartzHost.HosSchedule; +using Microsoft.EntityFrameworkCore; using Quartz; using Quartz.Impl; using Quartz.Impl.Matchers; using Quartz.Impl.Triggers; -using System; -using System.Collections.Generic; using System.Collections.Specialized; -using System.Linq; -using Hos.ScheduleMaster.Core.Models; -using System.Threading.Tasks; -using System.Threading; -using Hos.ScheduleMaster.Core.Common; -using Hos.ScheduleMaster.Core; -using Hos.ScheduleMaster.Core.Dto; -using System.IO.Compression; -using System.Net; -using System.IO; -using Microsoft.Extensions.DependencyInjection; -using Hos.ScheduleMaster.QuartzHost.HosSchedule; -using Microsoft.EntityFrameworkCore; namespace Hos.ScheduleMaster.QuartzHost.Common { diff --git a/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/Common/RootJob.cs b/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/Common/RootJob.cs index ac038c0..4c7fdf0 100644 --- a/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/Common/RootJob.cs +++ b/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/Common/RootJob.cs @@ -1,17 +1,10 @@  using Hos.ScheduleMaster.Base; +using Hos.ScheduleMaster.Core; using Hos.ScheduleMaster.Core.Log; -using Quartz; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; using Hos.ScheduleMaster.Core.Models; -using Microsoft.EntityFrameworkCore; -using System.Diagnostics; -using Hos.ScheduleMaster.Core; using Hos.ScheduleMaster.QuartzHost.HosSchedule; -using Hos.ScheduleMaster.Core.Common; +using Quartz; namespace Hos.ScheduleMaster.QuartzHost.Common { @@ -53,7 +46,7 @@ private async Task InnerRun(IJobExecutionContext context) { Guid traceId = Guid.NewGuid(); - TaskContext tctx = new TaskContext(instance.RunnableInstance); + var tctx = new TaskContext(instance.RunnableInstance); tctx.Node = node; tctx.TraceId = traceId; tctx.ParamsDict = instance.CustomParams; diff --git a/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/Common/RunTracer.cs b/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/Common/RunTracer.cs index 9d7fad7..18840ed 100644 --- a/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/Common/RunTracer.cs +++ b/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/Common/RunTracer.cs @@ -2,11 +2,7 @@ using Hos.ScheduleMaster.Core.Common; using Hos.ScheduleMaster.Core.Models; using Microsoft.EntityFrameworkCore; -using System; -using System.Collections.Generic; using System.Diagnostics; -using System.Linq; -using System.Threading.Tasks; namespace Hos.ScheduleMaster.QuartzHost.Common { diff --git a/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/Controllers/DelayedTaskController.cs b/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/Controllers/DelayedTaskController.cs index 1ed8418..159a080 100644 --- a/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/Controllers/DelayedTaskController.cs +++ b/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/Controllers/DelayedTaskController.cs @@ -1,17 +1,8 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Hos.ScheduleMaster.QuartzHost.Common; -using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Logging; +using Hos.ScheduleMaster.Core.Log; using Hos.ScheduleMaster.Core.Models; -using Hos.ScheduleMaster.Core.Log; -using Microsoft.AspNetCore.Authorization; -using Hos.ScheduleMaster.Core; using Hos.ScheduleMaster.QuartzHost.DelayedTask; +using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; -using System.Net.Http; namespace Hos.ScheduleMaster.QuartzHost.Controllers { diff --git a/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/Controllers/QuartzController.cs b/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/Controllers/QuartzController.cs index d2e2593..9581775 100644 --- a/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/Controllers/QuartzController.cs +++ b/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/Controllers/QuartzController.cs @@ -1,14 +1,6 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Hos.ScheduleMaster.QuartzHost.Common; -using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Logging; -using Hos.ScheduleMaster.Core.Models; -using Hos.ScheduleMaster.Core.Log; +using Hos.ScheduleMaster.QuartzHost.Common; using Microsoft.AspNetCore.Authorization; -using Hos.ScheduleMaster.Core; +using Microsoft.AspNetCore.Mvc; namespace Hos.ScheduleMaster.QuartzHost.Controllers { diff --git a/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/Controllers/ServerController.cs b/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/Controllers/ServerController.cs index 2af79d3..920b62f 100644 --- a/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/Controllers/ServerController.cs +++ b/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/Controllers/ServerController.cs @@ -1,14 +1,9 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Hos.ScheduleMaster.QuartzHost.Common; -using Microsoft.AspNetCore.Mvc; -using Microsoft.Extensions.Logging; -using Hos.ScheduleMaster.Core.Models; +using Hos.ScheduleMaster.Core; using Hos.ScheduleMaster.Core.Log; +using Hos.ScheduleMaster.Core.Models; +using Hos.ScheduleMaster.QuartzHost.Common; using Microsoft.AspNetCore.Authorization; -using Hos.ScheduleMaster.Core; +using Microsoft.AspNetCore.Mvc; namespace Hos.ScheduleMaster.QuartzHost.Controllers { diff --git a/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/DelayedTask/DelayPlanManager.cs b/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/DelayedTask/DelayPlanManager.cs index cd5dbe8..c87c870 100644 --- a/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/DelayedTask/DelayPlanManager.cs +++ b/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/DelayedTask/DelayPlanManager.cs @@ -3,12 +3,6 @@ using Hos.ScheduleMaster.Core.Log; using Hos.ScheduleMaster.Core.Models; using Microsoft.EntityFrameworkCore; -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Linq; -using System.Net.Http; -using System.Threading.Tasks; namespace Hos.ScheduleMaster.QuartzHost.DelayedTask { @@ -70,7 +64,7 @@ public static async Task InsertById(Guid sid) private static bool InsertByEntity(ScheduleDelayedEntity entity) { bool success = false; - NotifyPlan plan = new NotifyPlan() + var plan = new NotifyPlan() { Key = entity.Id.ToString(), NotifyUrl = entity.NotifyUrl, diff --git a/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/DelayedTask/DelayQueue.cs b/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/DelayedTask/DelayQueue.cs index 45c3639..11e4e83 100644 --- a/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/DelayedTask/DelayQueue.cs +++ b/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/DelayedTask/DelayQueue.cs @@ -1,11 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using System.Collections.Concurrent; -using System.Threading; - -namespace Hos.ScheduleMaster.QuartzHost.DelayedTask +namespace Hos.ScheduleMaster.QuartzHost.DelayedTask { /// /// 时间轮算法实现的延时队列 diff --git a/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/Hos.ScheduleMaster.QuartzHost.csproj b/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/Hos.ScheduleMaster.QuartzHost.csproj index c915246..3374a22 100644 --- a/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/Hos.ScheduleMaster.QuartzHost.csproj +++ b/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/Hos.ScheduleMaster.QuartzHost.csproj @@ -1,38 +1,44 @@  - - netcoreapp3.1 - - - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - - - - - - - - - - - - - - - - - - - - Always - - - - + + net6.0 + enable + disable + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + + + + + + + + + + + + + + + + Always + + + + + + + + diff --git a/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/appsettings.json b/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/appsettings.json index 301f22b..d519765 100644 --- a/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/appsettings.json +++ b/src/ScheduleMasterCore/Hos.ScheduleMaster.QuartzHost/appsettings.json @@ -1,30 +1,32 @@ { - "Logging": { - "LogLevel": { - "Default": "Information", - "Microsoft": "Warning", - "Microsoft.Hosting.Lifetime": "Information" - } - }, - "AllowedHosts": "*", - /* - ProviderĿѡֵsqlserverpostgresqlmysqlĬΪmysql - ConnectionStringǶӦݿ͵ַʽʾ - - sqlserver"Persist Security Info = False; User ID =sa; Password =123456; Initial Catalog =schedule_master; Server =." - - postgresql"Server=localhost;Port=5432;Database=schedule_master;User Id=postgres;Password=123456;Pooling=true;MaxPoolSize=20;" - - mysql"Data Source=localhost;Database=schedule_master;User ID=root;Password=123456;pooling=true;CharSet=utf8mb4;port=3306;sslmode=none;TreatTinyAsBoolean=true" + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft": "Warning", + "Microsoft.Hosting.Lifetime": "Information" + } + }, + "AllowedHosts": "*", + /* + Provider的可选值:sqlserver、postgresql、mysql,默认为mysql + ConnectionString是对应数据库类型的连接字符串,格式示例: + - sqlserver:"Persist Security Info = False; User ID =sa; Password =123456; Initial Catalog =schedule_master; Server =." + - postgresql:"Server=localhost;Port=5432;Database=schedule_master;User Id=postgres;Password=123456;Pooling=true;MaxPoolSize=20;" + - mysql:"Data Source=localhost;Database=schedule_master;User ID=root;Password=123456;pooling=true;CharSet=utf8mb4;port=3306;sslmode=none;TreatTinyAsBoolean=true" + - oracle:"User Id=user;password=pwd;data source=localhost:1531/srv" */ - "DbConnector": { - "Provider": "sqlserver", - "ConnectionString": "Persist Security Info = False; User ID =sa; Password =111111; Initial Catalog =schedule_master; Server =." - }, - "NodeSetting": { - "IdentityName": "worker1", - "Role": "worker", - "Protocol": "http", - "IP": "localhost", - "Port": 30001, - "Priority": 1, - "MaxConcurrency": 20 - } + "DbConnector": { + "Provider": "mysql", + "ConnectionString": "Data Source=localhost;Database=schedule_master;User ID=root;Password=1Q2w3e4r$;pooling=true;CharSet=utf8mb4;port=3306;sslmode=none;TreatTinyAsBoolean=true", + "Version": "8.0" + }, + "NodeSetting": { + "IdentityName": "worker1", + "Role": "worker", + "Protocol": "http", + "IP": "localhost", + "Port": 30001, + "Priority": 1, + "MaxConcurrency": 20 + } } diff --git a/src/ScheduleMasterCore/Hos.ScheduleMaster.Web/AppStart/AppLifetimeHostedService.cs b/src/ScheduleMasterCore/Hos.ScheduleMaster.Web/AppStart/AppLifetimeHostedService.cs index 6c241ac..da3129c 100644 --- a/src/ScheduleMasterCore/Hos.ScheduleMaster.Web/AppStart/AppLifetimeHostedService.cs +++ b/src/ScheduleMasterCore/Hos.ScheduleMaster.Web/AppStart/AppLifetimeHostedService.cs @@ -61,8 +61,8 @@ private void OnStarted() //任务恢复 using (var scope = _serviceProvider.CreateScope()) { - Core.Services.ScheduleService service = new Core.Services.ScheduleService(); - AutowiredServiceProvider provider = new AutowiredServiceProvider(); + var service = new Core.Services.ScheduleService(); + var provider = new AutowiredServiceProvider(); provider.PropertyActivate(service, scope.ServiceProvider); service.RunningRecovery(); } diff --git a/src/ScheduleMasterCore/Hos.ScheduleMaster.Web/AppStart/SystemSchedulerRegistry.cs b/src/ScheduleMasterCore/Hos.ScheduleMaster.Web/AppStart/SystemSchedulerRegistry.cs index 8b86c8c..014137b 100644 --- a/src/ScheduleMasterCore/Hos.ScheduleMaster.Web/AppStart/SystemSchedulerRegistry.cs +++ b/src/ScheduleMasterCore/Hos.ScheduleMaster.Web/AppStart/SystemSchedulerRegistry.cs @@ -1,10 +1,5 @@ using FluentScheduler; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; using Hos.ScheduleMaster.Core; -using Microsoft.Extensions.DependencyInjection; namespace Hos.ScheduleMaster.Web.AppStart { @@ -28,8 +23,8 @@ public void Execute() { using (var scope = ConfigurationCache.RootServiceProvider.CreateScope()) { - Core.Interface.INodeService service = scope.ServiceProvider.GetService(); - AutowiredServiceProvider provider = new AutowiredServiceProvider(); + var service = scope.ServiceProvider.GetService(); + var provider = new AutowiredServiceProvider(); provider.PropertyActivate(service, scope.ServiceProvider); service.WorkerHealthCheck(); } diff --git a/src/ScheduleMasterCore/Hos.ScheduleMaster.Web/Hos.ScheduleMaster.Web.csproj b/src/ScheduleMasterCore/Hos.ScheduleMaster.Web/Hos.ScheduleMaster.Web.csproj index 76fc877..7887b29 100644 --- a/src/ScheduleMasterCore/Hos.ScheduleMaster.Web/Hos.ScheduleMaster.Web.csproj +++ b/src/ScheduleMasterCore/Hos.ScheduleMaster.Web/Hos.ScheduleMaster.Web.csproj @@ -1,35 +1,37 @@  - - netcoreapp3.1 - - + + net6.0 + enable + disable + + - - - - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - - + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + - - - - + + + + - - - Always - - + + + Always + + - - - + + + diff --git a/src/ScheduleMasterCore/Hos.ScheduleMaster.Web/appsettings.json b/src/ScheduleMasterCore/Hos.ScheduleMaster.Web/appsettings.json index f541700..15e8c8e 100644 --- a/src/ScheduleMasterCore/Hos.ScheduleMaster.Web/appsettings.json +++ b/src/ScheduleMasterCore/Hos.ScheduleMaster.Web/appsettings.json @@ -1,32 +1,34 @@ { - "Logging": { - "LogLevel": { - "Default": "Information", - "Microsoft": "Warning", - "Microsoft.Hosting.Lifetime": "Information" - } - }, - "AllowedHosts": "*", - /* - ProviderĿѡֵsqlserverpostgresqlmysqlĬΪmysql - ConnectionStringǶӦݿ͵ַʽʾ - - sqlserver"Persist Security Info = False; User ID =sa; Password =123456; Initial Catalog =schedule_master; Server =." - - postgresql"Server=localhost;Port=5432;Database=schedule_master;User Id=postgres;Password=123456;Pooling=true;MaxPoolSize=20;" - - mysql"Data Source=localhost;Database=schedule_master;User ID=root;Password=123456;pooling=true;CharSet=utf8mb4;port=3306;sslmode=none;TreatTinyAsBoolean=true" + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft": "Warning", + "Microsoft.Hosting.Lifetime": "Information" + } + }, + "AllowedHosts": "*", + /* + Provider的可选值:sqlserver、postgresql、mysql,默认为mysql + ConnectionString是对应数据库类型的连接字符串,格式示例: + - sqlserver:"Persist Security Info = False; User ID =sa; Password =123456; Initial Catalog =schedule_master; Server =." + - postgresql:"Server=localhost;Port=5432;Database=schedule_master;User Id=postgres;Password=123456;Pooling=true;MaxPoolSize=20;" + - mysql:"Data Source=localhost;Database=schedule_master;User ID=root;Password=123456;pooling=true;CharSet=utf8mb4;port=3306;sslmode=none;TreatTinyAsBoolean=true" + - oracle:"User Id=user;password=pwd;data source=localhost:1531/srv" */ - "DbConnector": { - "Provider": "sqlserver", - "ConnectionString": "Persist Security Info = False; User ID =sa; Password =111111; Initial Catalog =schedule_master; Server =." - }, - "AppSettings": { - "AdminDefaultPwd": "111111" - }, - "NodeSetting": { - "IdentityName": "master-node", - "Role": "master", - "Protocol": "http", - "IP": "localhost", - "Port": 30000 - } + "DbConnector": { + "Provider": "mysql", + "ConnectionString": "Data Source=localhost;Database=schedule_master;User ID=root;Password=1Q2w3e4r$;pooling=true;CharSet=utf8mb4;port=3306;sslmode=none;TreatTinyAsBoolean=true", + "Version": "8.0" + }, + "AppSettings": { + "AdminDefaultPwd": "111111" + }, + "NodeSetting": { + "IdentityName": "master-node", + "Role": "master", + "Protocol": "http", + "IP": "localhost", + "Port": 30000 + } } diff --git a/src/ScheduleMasterCore/Hos.ScheduleMaster.xUnitTest/Consts.cs b/src/ScheduleMasterCore/Hos.ScheduleMaster.xUnitTest/Consts.cs new file mode 100644 index 0000000..cec5f69 --- /dev/null +++ b/src/ScheduleMasterCore/Hos.ScheduleMaster.xUnitTest/Consts.cs @@ -0,0 +1,7 @@ +namespace Hos.ScheduleMaster.xUnitTest +{ + public static class Consts + { + public const string MySqlConn = "Data Source=localhost;Database=schedule_master;User ID=root;Password=1Q2w3e4r$;pooling=true;CharSet=utf8mb4;port=3306;sslmode=none;TreatTinyAsBoolean=true"; + } +} diff --git a/src/ScheduleMasterCore/Hos.ScheduleMaster.xUnitTest/Hos.ScheduleMaster.xUnitTest.csproj b/src/ScheduleMasterCore/Hos.ScheduleMaster.xUnitTest/Hos.ScheduleMaster.xUnitTest.csproj index 9a032cd..97733dd 100644 --- a/src/ScheduleMasterCore/Hos.ScheduleMaster.xUnitTest/Hos.ScheduleMaster.xUnitTest.csproj +++ b/src/ScheduleMasterCore/Hos.ScheduleMaster.xUnitTest/Hos.ScheduleMaster.xUnitTest.csproj @@ -1,43 +1,44 @@ - - netcoreapp3.1 + + net6.0 + enable + disable + false + - false - + + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + - - - - - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - + + + + + - - - - - + + + - - - - - - - Always - - - Always - - + + + Always + + + Always + + diff --git a/src/ScheduleMasterCore/Hos.ScheduleMaster.xUnitTest/Mock/Master/MockController.cs b/src/ScheduleMasterCore/Hos.ScheduleMaster.xUnitTest/Mock/Master/MockController.cs index 848d7c6..25a18ab 100644 --- a/src/ScheduleMasterCore/Hos.ScheduleMaster.xUnitTest/Mock/Master/MockController.cs +++ b/src/ScheduleMasterCore/Hos.ScheduleMaster.xUnitTest/Mock/Master/MockController.cs @@ -17,7 +17,7 @@ namespace Hos.ScheduleMaster.xUnitTest.Mock.Master { - + public class MockController { public static T CreateMvcController() where T : AdminController, new() @@ -40,7 +40,7 @@ public class MockController IServiceCollection services = new ServiceCollection(); //EF数据库上下文 - services.AddDbContext(option => option.UseMySql("Data Source=192.168.8.27;Database=schedule_master;User ID=root;Password=123456;pooling=true;CharSet=utf8;port=3306;sslmode=none;TreatTinyAsBoolean=true")); + services.AddDbContext(option => option.UseMySql(Consts.MySqlConn, new MySqlServerVersion("8.0"))); //注入Uow依赖 services.AddScoped>(); services.AddAppServices(); diff --git a/src/ScheduleMasterCore/Hos.ScheduleMaster.xUnitTest/Utils/LockTest.cs b/src/ScheduleMasterCore/Hos.ScheduleMaster.xUnitTest/Utils/LockTest.cs index 0963e17..5fffe56 100644 --- a/src/ScheduleMasterCore/Hos.ScheduleMaster.xUnitTest/Utils/LockTest.cs +++ b/src/ScheduleMasterCore/Hos.ScheduleMaster.xUnitTest/Utils/LockTest.cs @@ -1,11 +1,6 @@ using Hos.ScheduleMaster.Core.Models; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.DependencyInjection; -using System; -using System.Collections.Generic; -using System.Text; -using System.Threading; -using System.Threading.Tasks; using Xunit; namespace Hos.ScheduleMaster.xUnitTest.Utils @@ -17,7 +12,7 @@ public void DatabaseLock() { IServiceCollection services = new ServiceCollection(); //EF数据库上下文 - services.AddDbContext(option => option.UseMySql("Data Source=192.168.8.27;Database=schedule_master;User ID=root;Password=123456;pooling=true;CharSet=utf8;port=3306;sslmode=none;TreatTinyAsBoolean=true"), ServiceLifetime.Transient); + services.AddDbContext(option => option.UseMySql(Consts.MySqlConn, new MySqlServerVersion("8.0")), ServiceLifetime.Transient); services.AddTransient(); var serviceProvider = services.BuildServiceProvider();