//获取一个执行的计划 public cPlan GetSinglePlan(Int64 PlanID) { //判断计划文件是否存在,如果不存在则新建 if (!IsExist()) { NewIndexFile(); } //判断计划是否重名,如果重名则需要进行名称修改 cXmlIO xmlConfig = new cXmlIO(Program.getPrjPath() + "tasks\\plan\\plan.xml"); DataView d = xmlConfig.GetData("Plans", "ID", PlanID.ToString()); DataView t = d[0].CreateChildView("Plan_Tasks")[0].CreateChildView("Tasks_Task"); cPlan p = new cPlan(); p.PlanID = Int64.Parse(d[0].Row["ID"].ToString()); p.PlanName = d[0].Row["PlanName"].ToString(); p.PlanRemark = d[0].Row["PlanRemark"].ToString(); p.PlanState = int.Parse(d[0].Row["PlanState"].ToString()); p.IsOverRun = d[0].Row["IsOverRun"].ToString() == "True" ? true : false; p.IsDisabled = d[0].Row["IsDisabled"].ToString() == "True" ? true : false; p.DisabledType = int.Parse(d[0].Row["DisabledType"].ToString()); p.DisabledTime = int.Parse(d[0].Row["DisabledTime"].ToString()); p.DisabledDateTime = DateTime.Parse(d[0].Row["DisabledDateTime"].ToString()); p.RunTaskPlanType = int.Parse(d[0].Row["RunTaskPlanType"].ToString()); p.EnabledDateTime = d[0].Row["EnabledDateTime"].ToString(); p.RunOnesTime = d[0].Row["RunOnesTime"].ToString(); p.RunDayTime = d[0].Row["RunDayTime"].ToString(); p.RunAMTime = d[0].Row["RunAMTime"].ToString(); p.RunPMTime = d[0].Row["RunPMTime"].ToString(); p.RunWeeklyTime = d[0].Row["RunWeeklyTime"].ToString(); p.RunWeekly = d[0].Row["RunWeekly"].ToString(); p.RunTimeCount = d[0].Row["RunTimeCount"].ToString(); p.FirstRunTime = d[0].Row["FirstRunTime"].ToString(); p.RunInterval = d[0].Row["RunInterval"].ToString(); cTaskPlan tp; for (int i = 0; i < t.Count; i++) { tp = new cTaskPlan(); tp.RunTaskType = int.Parse(t[i].Row["RunTaskType"].ToString()); tp.RunTaskName = t[i].Row["RunTaskName"].ToString(); tp.RunTaskPara = t[i].Row["RunTaskPara"].ToString(); p.RunTasks.Add(tp); } xmlConfig = null; return(p); }
//��ȡһ��ִ�еļƻ� public cPlan GetSinglePlan(Int64 PlanID) { //�жϼƻ��ļ��Ƿ���ڣ�������������½� if (!IsExist()) NewIndexFile(); //�жϼƻ��Ƿ������������������Ҫ���������� cXmlIO xmlConfig = new cXmlIO(Program.getPrjPath() + "tasks\\plan\\plan.xml"); DataView d= xmlConfig.GetData("Plans", "ID", PlanID.ToString ()); DataView t = d[0].CreateChildView("Plan_Tasks")[0].CreateChildView("Tasks_Task"); cPlan p = new cPlan(); p.PlanID = Int64.Parse(d[0].Row["ID"].ToString()); p.PlanName = d[0].Row["PlanName"].ToString(); p.PlanRemark = d[0].Row["PlanRemark"].ToString(); p.PlanState = int.Parse(d[0].Row["PlanState"].ToString()); p.IsOverRun = d[0].Row["IsOverRun"].ToString() == "True" ? true : false; p.IsDisabled = d[0].Row["IsDisabled"].ToString() == "True" ? true : false; p.DisabledType = int.Parse(d[0].Row["DisabledType"].ToString()); p.DisabledTime = int.Parse(d[0].Row["DisabledTime"].ToString()); p.DisabledDateTime = DateTime.Parse(d[0].Row["DisabledDateTime"].ToString()); p.RunTaskPlanType = int.Parse(d[0].Row["RunTaskPlanType"].ToString()); p.EnabledDateTime = d[0].Row["EnabledDateTime"].ToString(); p.RunOnesTime =d[0].Row["RunOnesTime"].ToString(); p.RunDayTime = d[0].Row["RunDayTime"].ToString(); p.RunAMTime = d[0].Row["RunAMTime"].ToString(); p.RunPMTime = d[0].Row["RunPMTime"].ToString(); p.RunWeeklyTime = d[0].Row["RunWeeklyTime"].ToString(); p.RunWeekly = d[0].Row["RunWeekly"].ToString(); p.RunTimeCount = d[0].Row["RunTimeCount"].ToString(); p.FirstRunTime = d[0].Row["FirstRunTime"].ToString(); p.RunInterval = d[0].Row["RunInterval"].ToString(); cTaskPlan tp; for (int i = 0; i < t.Count; i++) { tp = new cTaskPlan(); tp.RunTaskType =int.Parse ( t[i].Row["RunTaskType"].ToString()); tp.RunTaskName = t[i].Row["RunTaskName"].ToString(); tp.RunTaskPara = t[i].Row["RunTaskPara"].ToString(); p.RunTasks.Add(tp); } xmlConfig = null; return p; }
public cAddRunTaskEventArgs(cTaskPlan RTask) { m_RunTask = RTask; }
private Int64 SaveTaskPlan() { cPlan NewPlan = new cPlan(); Int64 Nid = GetNewID(); if (Nid == 0) { throw new cSoukeyException(rm.GetString ("Error21")); } NewPlan.PlanID = Nid; NewPlan.PlanName = this.txtPlanName.Text; NewPlan.PlanRemark = this.txtPlanDemo.Text; //ϵͳ�Զ��жϵ�ǰ�����״̬ if (this.cboxIsDisabled.Checked == true) { if (this.raNumber.Checked == true) { if (this.DisabledRunNum.Value == 1 && DateTime.Compare(DateTime.Now,this.RunOnceTime.Value) > 0) NewPlan.PlanState =(int) cGlobalParas.PlanState.Disabled; else NewPlan.PlanState = (int)cGlobalParas.PlanState.Enabled; } else if (this.raDateTime.Checked == true) { if (DateTime.Compare(DateTime.Now, this.DisabledDateTime.Value) < 0) NewPlan.PlanState = (int)cGlobalParas.PlanState.Disabled; else NewPlan.PlanState = (int)cGlobalParas.PlanState.Enabled; } } else { NewPlan.PlanState = (int)cGlobalParas.PlanState.Enabled; } if (this.cboxIsRun.Checked == true) NewPlan.IsOverRun = true; else NewPlan.IsOverRun = false; if (this.cboxIsDisabled.Checked ==true ) NewPlan.IsDisabled =true ; else NewPlan .IsDisabled =false ; if (this.raNumber.Checked ==true ) NewPlan.DisabledType =(int) cGlobalParas.PlanDisabledType.RunTime ; else if (this.raDateTime .Checked ==true ) NewPlan.DisabledType =(int) cGlobalParas.PlanDisabledType .RunDateTime ; NewPlan.DisabledTime =int.Parse (this.DisabledRunNum .Value.ToString () ); NewPlan.DisabledDateTime = this.DisabledDateTime.Value; cTaskPlan tp; for (int i = 0; i < this.listTask.Items.Count; i++) { tp = new cTaskPlan(); tp.RunTaskType = cGlobalParas.ConvertID(this.listTask.Items[i].Text); if (cGlobalParas.ConvertID(this.listTask.Items[i].Text)==(int)cGlobalParas.RunTaskType.DataTask ) tp.RunTaskName = cGlobalParas.ConvertID ( this.listTask.Items[i].SubItems[1].Text.ToString()).ToString (); else tp.RunTaskName =this.listTask.Items[i].SubItems[1].Text.ToString(); tp.RunTaskPara = this.listTask.Items[i].SubItems[2].Text.ToString(); NewPlan.RunTasks.Add(tp); } if (this.raOneTime.Checked == true) NewPlan.RunTaskPlanType = (int) cGlobalParas.RunTaskPlanType.Ones; else if (this.raDay.Checked == true) { if (this.raRunones.Checked == true) NewPlan.RunTaskPlanType = (int)cGlobalParas.RunTaskPlanType.DayOnes; else if (this.raRuntwice.Checked == true) NewPlan.RunTaskPlanType = (int)cGlobalParas.RunTaskPlanType.DayTwice; } else if (this.raWeekly.Checked == true) { NewPlan.RunTaskPlanType = (int)cGlobalParas.RunTaskPlanType.Weekly; } else if (this.raCustom.Checked == true) { NewPlan.RunTaskPlanType = (int)cGlobalParas.RunTaskPlanType.Custom; } NewPlan.EnabledDateTime = this.EnabledDate.Value.ToLongDateString (); NewPlan.RunOnesTime = this.RunOnceTime.Value.ToString () ; NewPlan.RunDayTime = this.RunDayOnesTime.Value.ToLongTimeString(); NewPlan.RunAMTime = this.RunDayTwice1Time.Value.ToLongTimeString(); NewPlan.RunPMTime = this.RunDayTwice2Time.Value.ToLongTimeString(); NewPlan.RunWeeklyTime = this.RunWeeklyTime.Value.ToLongTimeString(); NewPlan.FirstRunTime = this.FirstRunTime.Value.ToLongTimeString(); NewPlan.RunInterval = this.udRunInterval.Value.ToString(); string runWeekly = ""; if (this.cboxSunday.Checked ==true ) runWeekly ="0"; if (this.cboxMonday.Checked == true) runWeekly += ",1"; if (this.cboxTuesday.Checked == true) runWeekly += ",2"; if (this.cboxWednesday.Checked == true) runWeekly += ",3"; if (this.cboxThursday.Checked == true) runWeekly += ",4"; if (this.cboxFriday.Checked == true) runWeekly += ",5"; if (this.cboxSturday.Checked == true) runWeekly += ",6"; NewPlan.RunWeekly = runWeekly; cPlans p = new cPlans(); if (this.FormState == cGlobalParas.FormState.New ) { p.InsertPlan(NewPlan); } else if (this.FormState == cGlobalParas.FormState.Edit) { p.EditPlan(NewPlan); } p = null; return Nid; }
public void AddTask(cTaskPlan task) { m_runningTasks.Enqueue(task); RunTask(); }
//�������ⲿ���� //�����Ҫִ�е����������Ҫִ�У�������� //ѹ��ִ�е���������� public void CheckPlan() { //���¼��ؼƻ��ڼ��ֹ���мƻ������� if (m_IsReloading == false) { cTaskPlan tPlan; for (int i = 0; i < m_runTasks.Count; i++) { //��Ч�ļƻ��������жϣ��ƻ���״̬��ִ��ʱ����ά�� if (m_runTasks[i].PlanState ==(int) cGlobalParas.PlanState.Enabled) { if (DateTime.Compare(DateTime.Now, DateTime.Parse(m_runTasks[i].EnabledDateTime)) < 0) { //��ʾ��δ����Чʱ�䣬�����ô�����ļ�� continue; } if (m_runTasks[i].PlanRunTime == "" || m_runTasks[i].PlanRunTime == null) { m_runTasks[i].PlanRunTime = m_runTasks[i].NextRunTime; } else { double douTime = TimeSpan.Parse(DateTime.Now.Subtract(DateTime.Parse(m_runTasks[i].PlanRunTime)).ToString()).TotalSeconds; //��ʾ�´����е�ʱ���Ѿ����ˣ�����δ����5���ӣ��������5���ӣ���Ĭ��ϵͳû��ִ�д����� //�Ƿ��ٴ�ִ�������ò���������IsOverRun if (douTime > 0 && douTime < 300) { //������ѹ��������� for (int j = 0; j < m_runTasks[i].RunTasks.Count; j++) { //�ڴ���Ҫ���³�ʼ��ִ����������ݣ���Ҫ��Ҫ���Ӽƻ���ID�ͼƻ������� tPlan = new cTaskPlan(); tPlan.PlanID = m_runTasks[i].PlanID.ToString(); tPlan.PlanName = m_runTasks[i].PlanName; tPlan.RunTaskType = m_runTasks[i].RunTasks[j].RunTaskType; tPlan.RunTaskName = m_runTasks[i].RunTasks[j].RunTaskName; tPlan.RunTaskPara = m_runTasks[i].RunTasks[j].RunTaskPara; e_AddRunTaskEvent(this, new cAddRunTaskEventArgs(tPlan)); } m_runTasks[i].PlanRunTime = m_runTasks[i].NextRunTime; } } } } } }
//���ؼƻ�,���ؼƻ���ʱ����Ҫ�Լƻ���״̬����ά�� private void IniCheckPlan() { try { cXmlIO xmlConfig = new cXmlIO(Program.getPrjPath() + "tasks\\plan\\plan.xml"); DataView d = xmlConfig.GetData("descendant::Plans"); if (d == null) { return; } cPlan p; for (int i = 0; i < d.Count; i++) { p = new cPlan(); if (int.Parse(d[i].Row["PlanState"].ToString()) == (int)cGlobalParas.PlanState.Enabled) { p.PlanID = Int64.Parse(d[i].Row["ID"].ToString()); p.PlanName = d[i].Row["PlanName"].ToString(); p.PlanState = int.Parse(d[i].Row["PlanState"].ToString()); p.IsOverRun = d[i].Row["IsOverRun"].ToString() == "True" ? true : false; p.IsDisabled = d[i].Row["IsDisabled"].ToString() == "True" ? true : false; p.DisabledType = int.Parse(d[i].Row["DisabledType"].ToString()); p.DisabledTime = int.Parse(d[i].Row["DisabledTime"].ToString()); p.DisabledDateTime = DateTime.Parse(d[i].Row["DisabledDateTime"].ToString()); p.RunTaskPlanType = int.Parse(d[i].Row["RunTaskPlanType"].ToString()); p.EnabledDateTime = d[i].Row["EnabledDateTime"].ToString(); p.RunOnesTime = d[i].Row["RunOnesTime"].ToString(); p.RunDayTime = d[i].Row["RunDayTime"].ToString(); p.RunAMTime = d[i].Row["RunAMTime"].ToString(); p.RunPMTime = d[i].Row["RunPMTime"].ToString(); p.RunWeeklyTime = d[i].Row["RunWeeklyTime"].ToString(); p.RunWeekly = d[i].Row["RunWeekly"].ToString(); p.RunTimeCount = d[i].Row["RunTimeCount"].ToString(); p.FirstRunTime = d[i].Row["FirstRunTime"].ToString(); p.RunInterval = d[i].Row["RunInterval"].ToString(); cTaskPlan tp; DataView t = d[i].CreateChildView("Plan_Tasks")[0].CreateChildView("Tasks_Task"); for (int j = 0; j < t.Count; j++) { tp = new cTaskPlan(); tp.RunTaskType = int.Parse(t[j].Row["RunTaskType"].ToString()); tp.RunTaskName = t[j].Row["RunTaskName"].ToString(); tp.RunTaskPara = t[j].Row["RunTaskPara"].ToString(); p.RunTasks.Add(tp); } m_runTasks.Add(p); } } p = null; xmlConfig = null; //�Զ�ά���ƻ�״̬ AutoState(); } catch (System.Exception ex) { throw ex; } }
//�����������ִ���¼� private void TriggerRun() { //����ʧ�ܻ��dzɹ���Ҫ���д������Ĵ��� if (m_pTaskData.IsTrigger == true && m_pTaskData.TriggerType == ((int)cGlobalParas.TriggerType.PublishedRun).ToString()) { cRunTask rt = new cRunTask(); rt.RunSoukeyTaskEvent += this.onRunSoukeyTask; cTaskPlan p; for (int i = 0; i < m_pTaskData.TriggerTask.Count; i++) { p = new cTaskPlan(); p.RunTaskType = m_pTaskData.TriggerTask[i].RunTaskType; p.RunTaskName = m_pTaskData.TriggerTask[i].RunTaskName; p.RunTaskPara = m_pTaskData.TriggerTask[i].RunTaskPara; rt.AddTask(p); } rt.RunSoukeyTaskEvent -= this.onRunSoukeyTask; rt = null; } }