Backup: removed BackupServiceNotifier
This commit is contained in:
parent
ffc756f32b
commit
0b31269c8e
@ -44,22 +44,19 @@ namespace ASC.Data.Backup.Service
|
||||
private BackupSchedulerService SchedulerService { get; set; }
|
||||
private BackupWorker BackupWorker { get; set; }
|
||||
private IConfiguration Configuration { get; set; }
|
||||
public BackupServiceNotifier BackupServiceNotifier { get; }
|
||||
|
||||
public BackupServiceLauncher(
|
||||
IServiceProvider serviceProvider,
|
||||
BackupCleanerService cleanerService,
|
||||
BackupSchedulerService schedulerService,
|
||||
BackupWorker backupWorker,
|
||||
IConfiguration configuration,
|
||||
BackupServiceNotifier backupServiceNotifier)
|
||||
IConfiguration configuration)
|
||||
{
|
||||
ServiceProvider = serviceProvider;
|
||||
CleanerService = cleanerService;
|
||||
SchedulerService = schedulerService;
|
||||
BackupWorker = backupWorker;
|
||||
Configuration = configuration;
|
||||
BackupServiceNotifier = backupServiceNotifier;
|
||||
}
|
||||
|
||||
public Task StartAsync(CancellationToken cancellationToken)
|
||||
|
@ -31,7 +31,6 @@ using System.Linq;
|
||||
using System.ServiceModel;
|
||||
|
||||
using ASC.Common;
|
||||
using ASC.Common.Caching;
|
||||
using ASC.Common.Logging;
|
||||
using ASC.Common.Utils;
|
||||
using ASC.Data.Backup.Contracts;
|
||||
@ -46,63 +45,25 @@ using Newtonsoft.Json;
|
||||
|
||||
namespace ASC.Data.Backup.Service
|
||||
{
|
||||
public class BackupServiceNotifier
|
||||
{
|
||||
public ICacheNotify<BackupProgress> СacheBackupProgress { get; }
|
||||
public ICache Cache { get; }
|
||||
|
||||
public BackupServiceNotifier(ICacheNotify<BackupProgress> сacheBackupProgress)
|
||||
{
|
||||
Cache = AscCache.Memory;
|
||||
СacheBackupProgress = сacheBackupProgress;
|
||||
|
||||
СacheBackupProgress.Subscribe((a) =>
|
||||
{
|
||||
Cache.Insert(GetCacheKey(a.TenantId, a.BackupProgressEnum), a, DateTime.UtcNow.AddDays(1));
|
||||
},
|
||||
CacheNotifyAction.InsertOrUpdate);
|
||||
}
|
||||
|
||||
public BackupProgress GetBackupProgress(int tenantId)
|
||||
{
|
||||
return Cache.Get<BackupProgress>(GetCacheKey(tenantId, BackupProgressEnum.Backup));
|
||||
}
|
||||
|
||||
public BackupProgress GetTransferProgress(int tenantID)
|
||||
{
|
||||
return Cache.Get<BackupProgress>(GetCacheKey(tenantID, BackupProgressEnum.Transfer));
|
||||
}
|
||||
|
||||
public BackupProgress GetRestoreProgress(int tenantId)
|
||||
{
|
||||
return Cache.Get<BackupProgress>(GetCacheKey(tenantId, BackupProgressEnum.Restore));
|
||||
}
|
||||
|
||||
private string GetCacheKey(int tenantId, BackupProgressEnum backupProgressEnum) => $"{backupProgressEnum}backup{tenantId}";
|
||||
}
|
||||
|
||||
public class BackupService : IBackupService
|
||||
{
|
||||
private ILog Log { get; set; }
|
||||
private BackupStorageFactory BackupStorageFactory { get; set; }
|
||||
private BackupWorker BackupWorker { get; set; }
|
||||
private BackupRepository BackupRepository { get; }
|
||||
private BackupServiceNotifier BackupServiceNotifier { get; }
|
||||
private IConfiguration Configuration { get; }
|
||||
|
||||
public BackupService(
|
||||
IOptionsMonitor<ILog> options,
|
||||
BackupStorageFactory backupStorageFactory,
|
||||
BackupWorker backupWorker,
|
||||
BackupRepository backupRepository,
|
||||
BackupServiceNotifier backupServiceNotifier,
|
||||
BackupRepository backupRepository,
|
||||
IConfiguration configuration)
|
||||
{
|
||||
Log = options.CurrentValue;
|
||||
BackupStorageFactory = backupStorageFactory;
|
||||
BackupWorker = backupWorker;
|
||||
BackupRepository = backupRepository;
|
||||
BackupServiceNotifier = backupServiceNotifier;
|
||||
Configuration = configuration;
|
||||
}
|
||||
|
||||
@ -210,17 +171,17 @@ namespace ASC.Data.Backup.Service
|
||||
|
||||
public BackupProgress GetBackupProgress(int tenantId)
|
||||
{
|
||||
return BackupServiceNotifier.GetBackupProgress(tenantId);
|
||||
return BackupWorker.GetBackupProgress(tenantId);
|
||||
}
|
||||
|
||||
public BackupProgress GetTransferProgress(int tenantId)
|
||||
{
|
||||
return BackupServiceNotifier.GetTransferProgress(tenantId);
|
||||
return BackupWorker.GetTransferProgress(tenantId);
|
||||
}
|
||||
|
||||
public BackupProgress GetRestoreProgress(int tenantId)
|
||||
{
|
||||
return BackupServiceNotifier.GetRestoreProgress(tenantId);
|
||||
return BackupWorker.GetRestoreProgress(tenantId);
|
||||
}
|
||||
|
||||
public string GetTmpFolder()
|
||||
@ -294,7 +255,6 @@ namespace ASC.Data.Backup.Service
|
||||
{
|
||||
if (services.TryAddScoped<BackupService>())
|
||||
{
|
||||
services.TryAddSingleton<BackupServiceNotifier>();
|
||||
return services
|
||||
.AddBackupWorkerService();
|
||||
}
|
||||
|
@ -130,11 +130,9 @@ namespace ASC.Data.Backup.Service
|
||||
ProgressQueue.QueueTask((a, b) => item.RunJob(), item);
|
||||
}
|
||||
|
||||
var progress = ToBackupProgress(item);
|
||||
PublishProgress(item);
|
||||
|
||||
PublishProgress(progress);
|
||||
|
||||
return progress;
|
||||
return ToBackupProgress(item);
|
||||
}
|
||||
}
|
||||
|
||||
@ -164,6 +162,22 @@ namespace ASC.Data.Backup.Service
|
||||
}
|
||||
}
|
||||
|
||||
public BackupProgress GetTransferProgress(int tenantId)
|
||||
{
|
||||
lock (SynchRoot)
|
||||
{
|
||||
return ToBackupProgress(ProgressQueue.GetTasks<TransferProgressItem>().FirstOrDefault(t => t.TenantId == tenantId));
|
||||
}
|
||||
}
|
||||
|
||||
public BackupProgress GetRestoreProgress(int tenantId)
|
||||
{
|
||||
lock (SynchRoot)
|
||||
{
|
||||
return ToBackupProgress(ProgressQueue.GetTasks<RestoreProgressItem>().FirstOrDefault(t => t.TenantId == tenantId));
|
||||
}
|
||||
}
|
||||
|
||||
public void ResetBackupError(int tenantId)
|
||||
{
|
||||
lock (SynchRoot)
|
||||
@ -228,6 +242,7 @@ namespace ASC.Data.Backup.Service
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private BackupProgress ToBackupProgress(BaseBackupProgressItem progressItem)
|
||||
{
|
||||
if (progressItem == null)
|
||||
@ -262,12 +277,6 @@ namespace ASC.Data.Backup.Service
|
||||
internal void PublishProgress(BaseBackupProgressItem progress)
|
||||
{
|
||||
progress.PublishChanges();
|
||||
PublishProgress(ToBackupProgress(progress));
|
||||
}
|
||||
|
||||
internal void PublishProgress(BackupProgress progress)
|
||||
{
|
||||
CacheBackupProgress.Publish(progress, CacheNotifyAction.InsertOrUpdate);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -675,7 +675,7 @@ namespace ASC.Web.Core.Users
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!ResizeQueue.GetTasks().OfType<ResizeWorkerItem>().Any(r => r.GetProperty<string>("key") == key))
|
||||
if (!ResizeQueue.GetTasks<ResizeWorkerItem>().Any(r => r.GetProperty<string>("key") == key))
|
||||
{
|
||||
//Add
|
||||
ResizeQueue.QueueTask((a, b) => ResizeImage(resizeTask), resizeTask);
|
||||
|
Loading…
Reference in New Issue
Block a user