feat:添加任务调度,系统每天12点、0点重置一次
This commit is contained in:
@@ -0,0 +1,27 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Furion.DependencyInjection;
|
||||||
|
|
||||||
|
namespace Yi.Framework.Infrastructure.Data.DataSeeds
|
||||||
|
{
|
||||||
|
|
||||||
|
public class DataSeedExecuteHandler : ISingleton
|
||||||
|
{
|
||||||
|
private IEnumerable<IDataSeed> _dataSeeds;
|
||||||
|
public DataSeedExecuteHandler(IEnumerable<IDataSeed> dataSeeds)
|
||||||
|
{
|
||||||
|
_dataSeeds = dataSeeds;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task Invoker()
|
||||||
|
{
|
||||||
|
foreach (var dataSeed in _dataSeeds)
|
||||||
|
{
|
||||||
|
await dataSeed.InvokerAsync();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
using Furion;
|
using Furion;
|
||||||
|
using Furion.Schedule;
|
||||||
using Microsoft.AspNetCore.Builder;
|
using Microsoft.AspNetCore.Builder;
|
||||||
using Microsoft.AspNetCore.Hosting;
|
using Microsoft.AspNetCore.Hosting;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
@@ -36,6 +37,8 @@ public class Startup : AppStartup
|
|||||||
{
|
{
|
||||||
options.Filters.Add<PermissionGlobalAttribute>();
|
options.Filters.Add<PermissionGlobalAttribute>();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public async void Configure(IApplicationBuilder app, IWebHostEnvironment env)
|
public async void Configure(IApplicationBuilder app, IWebHostEnvironment env)
|
||||||
|
|||||||
@@ -0,0 +1,43 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Furion.Schedule;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
using SqlSugar;
|
||||||
|
using Yi.Framework.Infrastructure.Data.DataSeeds;
|
||||||
|
using Yi.Framework.Module.DictionaryManager.Entities;
|
||||||
|
using Yi.Furion.Core.Rbac.Entities;
|
||||||
|
|
||||||
|
namespace Yi.Furion.Application.Rbac.Job
|
||||||
|
{
|
||||||
|
public class SystemDataJob : IJob
|
||||||
|
{
|
||||||
|
private ISqlSugarClient _db;
|
||||||
|
private DataSeedExecuteHandler _dataSeedExecuteHandler;
|
||||||
|
private ILogger<SystemDataJob> _logger;
|
||||||
|
public SystemDataJob(ISqlSugarClient sqlSugarClient, DataSeedExecuteHandler dataSeedExecuteHandler,ILogger<SystemDataJob> logger)
|
||||||
|
{
|
||||||
|
_db = sqlSugarClient;
|
||||||
|
_dataSeedExecuteHandler= dataSeedExecuteHandler;
|
||||||
|
_logger= logger;
|
||||||
|
}
|
||||||
|
public async Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken)
|
||||||
|
{
|
||||||
|
_db.DbMaintenance.TruncateTable<UserEntity>();
|
||||||
|
_db.DbMaintenance.TruncateTable<UserRoleEntity>();
|
||||||
|
_db.DbMaintenance.TruncateTable<RoleEntity>();
|
||||||
|
_db.DbMaintenance.TruncateTable<MenuEntity>();
|
||||||
|
_db.DbMaintenance.TruncateTable<RoleMenuEntity>();
|
||||||
|
_db.DbMaintenance.TruncateTable<DeptEntity>();
|
||||||
|
_db.DbMaintenance.TruncateTable<PostEntity>();
|
||||||
|
_db.DbMaintenance.TruncateTable<UserPostEntity>();
|
||||||
|
_db.DbMaintenance.TruncateTable<ConfigEntity>();
|
||||||
|
_db.DbMaintenance.TruncateTable<DictionaryEntity>();
|
||||||
|
_db.DbMaintenance.TruncateTable<DictionaryTypeEntity>();
|
||||||
|
await _dataSeedExecuteHandler.Invoker();
|
||||||
|
_logger.LogWarning("数据已经重置还原");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,9 +1,11 @@
|
|||||||
using Furion;
|
using Furion;
|
||||||
|
using Furion.Schedule;
|
||||||
using Microsoft.AspNetCore.Builder;
|
using Microsoft.AspNetCore.Builder;
|
||||||
using Microsoft.AspNetCore.Hosting;
|
using Microsoft.AspNetCore.Hosting;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.Extensions.Hosting;
|
using Microsoft.Extensions.Hosting;
|
||||||
using Yi.Framework.Infrastructure.Data.Json;
|
using Yi.Framework.Infrastructure.Data.Json;
|
||||||
|
using Yi.Furion.Application.Rbac.Job;
|
||||||
using Yi.Furion.Application.Rbac.SignalRHub;
|
using Yi.Furion.Application.Rbac.SignalRHub;
|
||||||
using Yi.Furion.Web.Core.Handlers;
|
using Yi.Furion.Web.Core.Handlers;
|
||||||
|
|
||||||
@@ -27,6 +29,13 @@ public class Startup : AppStartup
|
|||||||
|
|
||||||
services.AddHttpContextAccessor();
|
services.AddHttpContextAccessor();
|
||||||
services.AddSignalR();
|
services.AddSignalR();
|
||||||
|
|
||||||
|
services.AddSchedule(options =>
|
||||||
|
{
|
||||||
|
// 注册作业,并配置作业触发器
|
||||||
|
//options.AddJob<SystemDataJob>(Triggers.Daily()); // 表示每秒执行
|
||||||
|
options.AddJob<SystemDataJob>(Triggers.Cron("0 0 0,12 ? * ?")); // 表示每秒执行
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
|
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user