feat: 新增数据库定时备份功能
This commit is contained in:
@@ -3,21 +3,42 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Microsoft.Extensions.Options;
|
||||
using Quartz;
|
||||
using Quartz.Logging;
|
||||
using Volo.Abp.BackgroundWorkers.Quartz;
|
||||
using Volo.Abp.Domain.Repositories;
|
||||
using Yi.Framework.Rbac.Domain.Shared.Options;
|
||||
using Yi.Framework.SqlSugarCore.Abstractions;
|
||||
|
||||
namespace Yi.Framework.Rbac.Application.Jobs
|
||||
{
|
||||
//public class BackupDataBaseJob : QuartzBackgroundWorkerBase
|
||||
//{
|
||||
// public TestJob()
|
||||
// {
|
||||
// JobDetail = JobBuilder.Create<TestJob>().WithIdentity(nameof(TestJob)).Build();
|
||||
// Trigger = TriggerBuilder.Create().WithIdentity(nameof(TestJob)).WithCronSchedule("* * * * * ? *").Build();
|
||||
// }
|
||||
// public override Task Execute(IJobExecutionContext context)
|
||||
// {
|
||||
// Console.WriteLine("你好,世界");
|
||||
// return Task.CompletedTask;
|
||||
// }
|
||||
//}
|
||||
public class BackupDataBaseJob : QuartzBackgroundWorkerBase
|
||||
{
|
||||
private ISqlSugarDbContext _dbContext;
|
||||
public BackupDataBaseJob(ISqlSugarDbContext dbContext)
|
||||
{
|
||||
_dbContext = dbContext;
|
||||
JobDetail = JobBuilder.Create<BackupDataBaseJob>().WithIdentity(nameof(BackupDataBaseJob)).Build();
|
||||
|
||||
//每天00点与24点进行备份
|
||||
Trigger = TriggerBuilder.Create().WithIdentity(nameof(BackupDataBaseJob)).WithCronSchedule("0 0 0,12 * * ? ").Build();
|
||||
//Trigger = TriggerBuilder.Create().WithIdentity(nameof(BackupDataBaseJob)).WithSimpleSchedule(x=>x.WithIntervalInSeconds(10)).Build();
|
||||
}
|
||||
public override Task Execute(IJobExecutionContext context)
|
||||
{
|
||||
var options = LazyServiceProvider.GetRequiredService<IOptions<RbacOptions>>();
|
||||
if (options.Value.EnableDataBaseBackup)
|
||||
{
|
||||
var logger = LoggerFactory.CreateLogger<BackupDataBaseJob>();
|
||||
logger.LogWarning("正在进行数据库备份");
|
||||
_dbContext.BackupDataBase();
|
||||
logger.LogWarning("数据库备份已完成");
|
||||
|
||||
}
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user