SyncScheduledTask.cs 2.5 KB

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