diff --git a/src/Umbraco.Tests/Scheduling/BackgroundTaskRunnerTests.cs b/src/Umbraco.Tests/Scheduling/BackgroundTaskRunnerTests.cs index 299c11881d..ab83294496 100644 --- a/src/Umbraco.Tests/Scheduling/BackgroundTaskRunnerTests.cs +++ b/src/Umbraco.Tests/Scheduling/BackgroundTaskRunnerTests.cs @@ -514,7 +514,7 @@ namespace Umbraco.Tests.Scheduling throw new Exception("Task has thrown."); } - public async Task RunAsync() + public async Task RunAsync(CancellationToken token) { await Task.Delay(1000); throw new Exception("Task has thrown."); @@ -603,7 +603,7 @@ namespace Umbraco.Tests.Scheduling _gate.Set(); } - public Task RunAsync() + public Task RunAsync(CancellationToken token) { throw new NotImplementedException(); } @@ -690,10 +690,10 @@ namespace Umbraco.Tests.Scheduling Ended = DateTime.Now; } - public Task RunAsync() + public Task RunAsync(CancellationToken token) { throw new NotImplementedException(); - //return Task.Delay(500); // fixme + //return Task.Delay(500); } public bool IsAsync diff --git a/src/Umbraco.Web/PublishedCache/XmlPublishedCache/XmlCacheFilePersister.cs b/src/Umbraco.Web/PublishedCache/XmlPublishedCache/XmlCacheFilePersister.cs index 1bed36160f..1254951d82 100644 --- a/src/Umbraco.Web/PublishedCache/XmlPublishedCache/XmlCacheFilePersister.cs +++ b/src/Umbraco.Web/PublishedCache/XmlPublishedCache/XmlCacheFilePersister.cs @@ -128,8 +128,8 @@ namespace Umbraco.Web.PublishedCache.XmlPublishedCache { get { return true; } } - - public async Task RunAsync() + + public async Task RunAsync(CancellationToken token) { LogHelper.Debug("Run now."); var doc = _content.XmlContentInternal; diff --git a/src/Umbraco.Web/Scheduling/BackgroundTaskRunner.cs b/src/Umbraco.Web/Scheduling/BackgroundTaskRunner.cs index 2dfba25a48..3a5ace8af8 100644 --- a/src/Umbraco.Web/Scheduling/BackgroundTaskRunner.cs +++ b/src/Umbraco.Web/Scheduling/BackgroundTaskRunner.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Concurrent; -using System.Collections.Generic; using System.Runtime.CompilerServices; using System.Threading; using System.Threading.Tasks; @@ -14,7 +13,7 @@ namespace Umbraco.Web.Scheduling /// /// The type of the managed tasks. /// The task runner is web-aware and will ensure that it shuts down correctly when the AppDomain - /// shuts down (ie is unloaded). FIXME WHAT DOES THAT MEAN? + /// shuts down (ie is unloaded). internal class BackgroundTaskRunner : IBackgroundTaskRunner where T : class, IBackgroundTask { @@ -373,7 +372,7 @@ namespace Umbraco.Web.Scheduling using (bgTask) // ensure it's disposed { if (bgTask.IsAsync) - await bgTask.RunAsync(); // fixme should pass the token along?! + await bgTask.RunAsync(token); else bgTask.Run(); } diff --git a/src/Umbraco.Web/Scheduling/DelayedRecurringTaskBase.cs b/src/Umbraco.Web/Scheduling/DelayedRecurringTaskBase.cs index 3ecae089cc..f7cec0079b 100644 --- a/src/Umbraco.Web/Scheduling/DelayedRecurringTaskBase.cs +++ b/src/Umbraco.Web/Scheduling/DelayedRecurringTaskBase.cs @@ -44,11 +44,11 @@ namespace Umbraco.Web.Scheduling base.Run(); } - public override async Task RunAsync() + public override async Task RunAsync(CancellationToken token) { if (_latch != null) _latch.Dispose(); - await base.RunAsync(); + await base.RunAsync(token); } public WaitHandle Latch diff --git a/src/Umbraco.Web/Scheduling/IBackgroundTask.cs b/src/Umbraco.Web/Scheduling/IBackgroundTask.cs index 9be2512d01..4e646c0623 100644 --- a/src/Umbraco.Web/Scheduling/IBackgroundTask.cs +++ b/src/Umbraco.Web/Scheduling/IBackgroundTask.cs @@ -1,4 +1,5 @@ using System; +using System.Threading; using System.Threading.Tasks; namespace Umbraco.Web.Scheduling @@ -16,9 +17,10 @@ namespace Umbraco.Web.Scheduling /// /// Runs the task asynchronously. /// + /// A cancellation token. /// A instance representing the execution of the background task. /// The background task cannot run asynchronously. - Task RunAsync(); + Task RunAsync(CancellationToken token); /// /// Indicates whether the background task can run asynchronously. diff --git a/src/Umbraco.Web/Scheduling/RecurringTaskBase.cs b/src/Umbraco.Web/Scheduling/RecurringTaskBase.cs index 6bae7406f9..d710a70e03 100644 --- a/src/Umbraco.Web/Scheduling/RecurringTaskBase.cs +++ b/src/Umbraco.Web/Scheduling/RecurringTaskBase.cs @@ -53,7 +53,7 @@ namespace Umbraco.Web.Scheduling /// Implements IBackgroundTask.RunAsync(). /// /// Classes inheriting from RecurringTaskBase must implement PerformRun. - public virtual async Task RunAsync() + public virtual async Task RunAsync(CancellationToken token) { await PerformRunAsync(); Repeat();