Exemple #1
0
        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();
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
                }
            });
        }
Exemple #5
0
        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)));
                }
            });
        }