public SignallingBackgroundWorkScheduler( IBackgroundWorkScheduler innerScheduler, Action onScheduled) { _innerScheduler = innerScheduler; _onScheduled = onScheduled; }
public static async Task <bool> ScheduleAndWait( this IBackgroundWorkScheduler backgroundWorkScheduler, WorkItem workItem, TimeSpan timeout, object state = null) { if (workItem == null) { throw new ArgumentNullException(nameof(workItem)); } var tcs = new TaskCompletionSource <bool>(); await backgroundWorkScheduler.Schedule( new WorkItem(async(state, serviceProvider, cancellationToken) => { try { await workItem(state, serviceProvider, cancellationToken); tcs.SetResult(true); } catch (Exception ex) { tcs.SetException(ex); } }), state); if (await Task.WhenAny(Task.Delay(timeout), tcs.Task) != tcs.Task) { return(false); } return(await tcs.Task); }
public FileUploadProcessor( ISqlQueryDispatcherFactory sqlQueryDispatcherFactory, BlobServiceClient blobServiceClient, IClock clock, IRegionCache regionCache, IBackgroundWorkScheduler backgroundWorkScheduler) { _sqlQueryDispatcherFactory = sqlQueryDispatcherFactory; _blobContainerClient = blobServiceClient.GetBlobContainerClient(Constants.ContainerName); _clock = clock; _regionCache = regionCache; _backgroundWorkScheduler = backgroundWorkScheduler; }
public BulkUploadController( IBulkUploadService bulkUploadService, IBlobStorageService blobService, ICourseService courseService, ICosmosDbQueryDispatcher cosmosDbQueryDispatcher, IBackgroundWorkScheduler backgroundWorkScheduler, ILogger <BulkUploadController> logger, IProviderContextProvider providerContextProvider) { _bulkUploadService = bulkUploadService ?? throw new ArgumentNullException(nameof(bulkUploadService)); _blobService = blobService ?? throw new ArgumentNullException(nameof(blobService)); _courseService = courseService ?? throw new ArgumentNullException(nameof(courseService)); _cosmosDbQueryDispatcher = cosmosDbQueryDispatcher ?? throw new ArgumentNullException(nameof(cosmosDbQueryDispatcher)); _backgroundWorkScheduler = backgroundWorkScheduler ?? throw new ArgumentNullException(nameof(backgroundWorkScheduler)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _providerContextProvider = providerContextProvider; }
public HomeController(IBackgroundWorkScheduler backgroundWorker) { _backgroundWorker = backgroundWorker; }