public async Task ProcessAsync(ProcessingContext context) { var tables = new[] { _initializer.GetPublishedTableName(), _initializer.GetReceivedTableName() }; foreach (var table in tables) { _logger.LogDebug($"Collecting expired data from table: {table}"); int deletedCount; var time = DateTime.Now; do { deletedCount = await _storage.DeleteExpiresAsync(table, time, ItemBatch, context.CancellationToken); if (deletedCount != 0) { await context.WaitAsync(_delay); context.ThrowIfStopping(); } } while (deletedCount != 0); } await context.WaitAsync(_waitingInterval); }