internal AzureBlobUpdateTask(AzureBlobUpdateMetadata updateMetadata) { this.updateMetadata = updateMetadata; // Register this task with the hosting environment. // Allows for a more graceful stop of the task, in the case of IIS shutting down. HostingEnvironment.RegisterObject(this); }
private void Add(string taskId, AzureBlobUpdateMetadata taskMetadata) { if (this.taskToMetadata.ContainsKey(taskId)) { // If task already exists, updates it to the new schedule this.Cancel(taskId); } taskMetadata.Scheduler = Schedule(() => { var updateTask = new AzureBlobUpdateTask(taskMetadata); updateTask.Execute(); updateTask.Stop(immediate: true); }); taskMetadata.Scheduler.WithName(taskId).ToRunNow().AndEvery((int)taskMetadata.BlobPollDelay.TotalSeconds).Seconds(); this.taskToMetadata.Add(taskId, taskMetadata); }