public void ConsolidateResources() { OnProgressEvent(new VertoProgressEventArgs { ProgressString = "Consolidating timetable resources", Section = ProcessingSection.ConsolidatingResources }); Log("Consolidating", "Consolidating timetable resources"); try { var fs = new FederationSchema( AdminConnectionString, Timeouts.AdminDatabase, _configuration.MaxDegreeOfParallelism, _configuration.Pipelines); fs.UpdateConsolidationConfigTable(_configuration.Consolidation); DoParallelConsolidationProcessing(fs); } catch (AggregateException ex) { LogError(ex.InnerExceptions[0].Message); throw ex.InnerExceptions[0]; } catch (Exception ex) { LogError(ex.Message); throw; } }
private static void CreateFederationTables( string connectionString, int commandTimeoutSecs, int maxDegreeOfParallelism, Pipelines pipelineOptions) { var fs = new FederationSchema(connectionString, commandTimeoutSecs, maxDegreeOfParallelism, pipelineOptions); fs.CreateTables(); }
public bool ConsolidationConfigChanged(ConsolidationParams c) { if (DatabaseUtils.DatabaseExists(AdminConnectionString, Timeouts.AdminDatabase)) { var fs = new FederationSchema( AdminConnectionString, Timeouts.AdminDatabase, _configuration.MaxDegreeOfParallelism, _configuration.Pipelines); if (fs.ConsolidationConfigTableExists()) { return(fs.ConsolidationConfigChanged(c)); } } return(false); }
private void DoParallelConsolidationProcessing(FederationSchema fs) { List <Entity> entities = Enum.GetValues(typeof(Entity)).Cast <object>().Cast <Entity>().ToList(); var b = StagingTablesBuilder.Get(StagingSchema.PrimaryStagingSchemaName); var pOptions = new ParallelOptions { MaxDegreeOfParallelism = _configuration.MaxDegreeOfParallelism }; Parallel.ForEach(entities, pOptions, (e, loopState) => { if (!loopState.IsExceptional && EntityUtils.CanParticipateInConsolidation(e)) { var entry = _configuration.Consolidation.Get(e); fs.UpdateConsolidationTables(e, b.GetTable(EntityUtils.ToCtTableName(e)), entry); } }); }
private void DoParallelFederationProcessing() { var fs = new FederationSchema( AdminConnectionString, Timeouts.AdminDatabase, _configuration.MaxDegreeOfParallelism, _configuration.Pipelines); List <Entity> entities = Enum.GetValues(typeof(Entity)).Cast <object>().Cast <Entity>().ToList(); var b = StagingTablesBuilder.Get(StagingSchema.PrimaryStagingSchemaName); var pOptions = new ParallelOptions { MaxDegreeOfParallelism = _configuration.MaxDegreeOfParallelism }; Parallel.ForEach(entities, pOptions, (e, loopState) => { if (!loopState.IsExceptional && EntityUtils.RequiresFederation(e)) { fs.UpdateStdFederationTable(e, b.GetTable(EntityUtils.ToCtTableName(e))); } }); }