Exemplo n.º 1
0
        /// <summary>
        /// Checks for long running pipelines and updates their status in the database
        /// </summary>
        /// <param name="logging"></param>
        /// <returns></returns>
        public static short CheckLongRunningPipelines(Logging logging)
        {
            dynamic _ActivePipelines = ActivePipelines.GetLongRunningPipelines(logging);

            short     RunningPipelines  = 0;
            short     FinishedPipelines = 0;
            DataTable dt = new DataTable();

            dt.Columns.Add(new DataColumn("TaskInstanceId", typeof(string)));
            dt.Columns.Add(new DataColumn("ExecutionUid", typeof(Guid)));
            dt.Columns.Add(new DataColumn("PipelineName", typeof(string)));
            dt.Columns.Add(new DataColumn("DatafactorySubscriptionUid", typeof(Guid)));
            dt.Columns.Add(new DataColumn("DatafactoryResourceGroup", typeof(string)));
            dt.Columns.Add(new DataColumn("DatafactoryName", typeof(string)));
            dt.Columns.Add(new DataColumn("RunUid", typeof(Guid)));
            dt.Columns.Add(new DataColumn("Status", typeof(string)));
            dt.Columns.Add(new DataColumn("SimpleStatus", typeof(string)));

            //Check Each Running Pipeline
            foreach (dynamic _Pipeline in _ActivePipelines)
            {
                dynamic _PipelineStatus = CheckPipelineStatus.CheckPipelineStatusMethod(_Pipeline.DatafactorySubscriptionUid.ToString(), _Pipeline.DatafactoryResourceGroup.ToString(), _Pipeline.DatafactoryName.ToString(), _Pipeline.PipelineName.ToString(), _Pipeline.AdfRunUid.ToString(), logging);

                if (_PipelineStatus["SimpleStatus"].ToString() == "Runnning")
                {
                    RunningPipelines += 1;
                }

                if (_PipelineStatus["SimpleStatus"].ToString() == "Done")
                {
                    FinishedPipelines += 1;
                }

                DataRow dr = dt.NewRow();

                dr["TaskInstanceId"]             = _Pipeline.TaskInstanceId;
                dr["ExecutionUid"]               = _Pipeline.ExecutionUid;
                dr["DatafactorySubscriptionUid"] = _Pipeline.DatafactorySubscriptionUid;
                dr["DatafactoryResourceGroup"]   = _Pipeline.DatafactoryResourceGroup;
                dr["DatafactoryName"]            = _Pipeline.DatafactoryName;

                dr["Status"]       = _PipelineStatus["Status"];
                dr["SimpleStatus"] = _PipelineStatus["SimpleStatus"];
                dr["RunUid"]       = (Guid)_PipelineStatus["RunId"];
                dr["PipelineName"] = _PipelineStatus["PipelineName"];
                dt.Rows.Add(dr);
            }

            string TempTableName     = "#Temp" + Guid.NewGuid().ToString();
            TaskMetaDataDatabase TMD = new TaskMetaDataDatabase();

            //Todo: Update both the TaskInstanceExecution and the TaskInstance;
            TMD.AutoBulkInsertAndMerge(dt, TempTableName, "TaskInstanceExecution");

            return(RunningPipelines);
        }
Exemplo n.º 2
0
        public static short CountRunnningPipelines(Logging logging)
        {
            short _ActivePipelines = ActivePipelines.CountActivePipelines(logging);

            return(_ActivePipelines);
        }