SyncScheduledTask.cs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. using MediaBrowser.Common.ScheduledTasks;
  2. using MediaBrowser.Controller.Library;
  3. using MediaBrowser.Controller.Sync;
  4. using MediaBrowser.Model.Logging;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Threading;
  8. using System.Threading.Tasks;
  9. namespace MediaBrowser.Server.Implementations.Sync
  10. {
  11. public class SyncScheduledTask : IScheduledTask
  12. {
  13. private readonly ILibraryManager _libraryManager;
  14. private readonly ISyncRepository _syncRepo;
  15. private readonly ISyncManager _syncManager;
  16. private readonly ILogger _logger;
  17. private readonly IUserManager _userManager;
  18. public SyncScheduledTask(ILibraryManager libraryManager, ISyncRepository syncRepo, ISyncManager syncManager, ILogger logger, IUserManager userManager)
  19. {
  20. _libraryManager = libraryManager;
  21. _syncRepo = syncRepo;
  22. _syncManager = syncManager;
  23. _logger = logger;
  24. _userManager = userManager;
  25. }
  26. public string Name
  27. {
  28. get { return "Sync"; }
  29. }
  30. public string Description
  31. {
  32. get { return "Runs scheduled sync jobs"; }
  33. }
  34. public string Category
  35. {
  36. get
  37. {
  38. return "Library";
  39. }
  40. }
  41. public Task Execute(CancellationToken cancellationToken, IProgress<double> progress)
  42. {
  43. return new SyncJobProcessor(_libraryManager, _syncRepo, _syncManager, _logger, _userManager).Sync(progress,
  44. cancellationToken);
  45. }
  46. public IEnumerable<ITaskTrigger> GetDefaultTriggers()
  47. {
  48. return new ITaskTrigger[]
  49. {
  50. new IntervalTrigger { Interval = TimeSpan.FromHours(3) },
  51. new StartupTrigger{ DelayMs = Convert.ToInt32(TimeSpan.FromMinutes(5).TotalMilliseconds)}
  52. };
  53. }
  54. }
  55. }