/// <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); }
public static short CountRunnningPipelines(Logging logging) { short _ActivePipelines = ActivePipelines.CountActivePipelines(logging); return(_ActivePipelines); }