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.Schedule;
|
||||
using Microsoft.AspNetCore.Builder;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
@@ -36,6 +37,8 @@ public class Startup : AppStartup
|
||||
{
|
||||
options.Filters.Add<PermissionGlobalAttribute>();
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
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.Schedule;
|
||||
using Microsoft.AspNetCore.Builder;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Hosting;
|
||||
using Yi.Framework.Infrastructure.Data.Json;
|
||||
using Yi.Furion.Application.Rbac.Job;
|
||||
using Yi.Furion.Application.Rbac.SignalRHub;
|
||||
using Yi.Furion.Web.Core.Handlers;
|
||||
|
||||
@@ -27,6 +29,13 @@ public class Startup : AppStartup
|
||||
|
||||
services.AddHttpContextAccessor();
|
||||
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)
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user