public void Delete()
        {
            if (cGaterWeb != null && taskEntity != null && taskEntity.GaterherState == EnumGloabParas.EnumThreadState.Normal)
            {
                string errMsg = string.Empty;
                TaskRunTickItemList runItemList = XmlHelper.LoadFromXml <TaskRunTickItemList>(Program.GetConfigPath("run.xml"), ref errMsg);
                if (!string.IsNullOrEmpty(errMsg))
                {
                    WinFormLib.Core.MessageBoxHelper.ShowError(errMsg);
                }
                TaskRunTickItem item = runItemList.Where(q => q.TaskTempName.Value == taskEntity.TaskTempName.Value).FirstOrDefault();
                if (item != null)
                {
                    runItemList.Remove(item);
                    XmlHelper.Save2File <TaskRunTickItemList>(runItemList, Program.GetConfigPath("run.xml"), ref errMsg);
                    if (!string.IsNullOrEmpty(errMsg))
                    {
                        WinFormLib.Core.MessageBoxHelper.ShowError(errMsg);
                        return;
                    }
                    string taskFilePath = @"Run\" + taskEntity.TaskTempName + ".xml";
                    System.IO.File.Delete(Program.GetConfigPath(taskFilePath));

                    foreach (TabPage tabePage in this.tabTaskRunLog.TabPages)
                    {
                        if (tabePage.Name == taskEntity.TaskTempName.Value)
                        {
                            this.tabTaskRunLog.TabPages.Remove(tabePage);
                            break;
                        }
                    }
                    cGaterWeb = null;
                }
            }
        }
Ejemplo n.º 2
0
 public cGatherTaskThreadItem(cGatherTaskManage manager, int index)
 {
     this.m_GatherTaskManage          = manager;
     this._getTempData                = new cGatherGetTempData();
     this.ThreadIndex                 = index;
     this.ThreadName                  = "thread" + index;
     threadWorker                     = new BackgroundWorker();
     threadWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(threadWorker_RunWorkerCompleted);
     threadWorker.DoWork             += new DoWorkEventHandler(threadWorker_DoWork);
 }
        public cGatherTaskTabPageManage(System.Windows.Forms.TabControl tabTaskRunLog, TaskRunItem _taskEntity)
        {
            this.taskEntity = _taskEntity;
            if (taskEntity == null)
            {
                throw new Exception(taskEntity.TaskTempName + "查找不到");
            }
            this.tabTaskRunLog = tabTaskRunLog;
            this.Name          = taskEntity.TaskTempName.Value;
            Int64  taskID   = taskEntity.TaskID;
            string taskName = taskEntity.TaskName.Value;

            if (taskEntity.AutoLog)
            {
                string logPath = taskEntity.DownFilePath.Value + @"\" + taskEntity.TaskTempName.Value + ".log";
                fileLogger = new DMSFrame.Loggers.FileLogger(Program.GetConfigPath(logPath));
            }
            string taskFilePath = @"Run\" + taskEntity.TaskTempName + ".xml";

            cGaterWeb        = new cGatherTaskManage(taskEntity);
            cGaterWeb.e_Log += new OnGatherLog(delegate(cGatherEventArgs evt)
            {
                string message = (int)evt.MessageType + evt.ThreadName + ":" + evt.Message;
                if (taskEntity.AutoLog && fileLogger != null)
                {
                    lock (fileLogger)
                    {
                        fileLogger.Log(message);
                    }
                }

                if (txtLog != null)
                {
                    cControlInvoked.UpdateText(txtLog, message + "\r\n");
                    Application.DoEvents();
                }
            });


            cGaterWeb.e_TotalCount += new OnGatherTotalCount(delegate(cGatherCompletedEventArgs evt)
            {
                taskEntity.TrueCount     = evt.TrueCount;
                taskEntity.TotalCount    = evt.TotalCount;
                taskEntity.ErrorCount    = evt.ErrorCount;
                taskEntity.GaterherState = evt.GaterherState;
            });

            cGaterWeb.e_GatherManagereCompleteCount += new OnGatherManagereCompleteCount(delegate(cGatherCompletedEventArgs evt)
            {
                #region MyRegion
                taskEntity.TrueCount     = evt.TrueCount;
                taskEntity.TotalCount    = evt.TotalCount;
                taskEntity.ErrorCount    = evt.ErrorCount;
                taskEntity.GaterherState = evt.GaterherState;
                #endregion
            });
            cGaterWeb.e_ThreadAllCompleted += new OnGatherThreadAllCompleted(delegate(cGatherUrlItemEventArgs evt)
            {
                #region MyRegion
                if (txtLog != null)
                {
                    cControlInvoked.UpdateText(txtLog, string.Format("{0}共采集到{1}条,已采集{2}条,错误{3}条!\r\n", (int)EnumGloabParas.EnumMessageType.WARNING, evt.TotalCount, evt.TrueCount, evt.ErrorCount));
                    cControlInvoked.UpdateText(txtLog, string.Format("{0}thread all colsed!\r\n", (int)EnumGloabParas.EnumMessageType.WARNING));
                }
                int totalCount = evt.RunWebUrls.Count + evt.RunFileUrls.Count;

                taskEntity.GaterherState = totalCount == 0 ? EnumGloabParas.EnumThreadState.SpiderCompleted : EnumGloabParas.EnumThreadState.Suspended;
                if (cGaterWeb != null)
                {
                    cGaterWeb.GaterherState = taskEntity.GaterherState;
                }
                taskEntity.TrueCount  = evt.TrueCount;
                taskEntity.TotalCount = evt.TotalCount;
                taskEntity.ErrorCount = evt.ErrorCount;
                if (dgvRunTaskList.DataSource != null)
                {
                    SaveData();
                }
                SaveTaskFile(taskFilePath, evt);
                if (taskEntity.GaterherState == EnumGloabParas.EnumThreadState.SpiderCompleted)
                {
                    if (taskEntity.ExcuteType == EnumGloabParas.EnumExcuteType.GetAndPublish)
                    {
                        #region MyRegion
                        if (taskEntity.TriggerType == EnumGloabParas.EnumTriggerType.GetData)
                        {
                            taskPlanCompleted = 0;
                            if (e_OnGatherRunPlanItemCompleted != null)
                            {
                                e_OnGatherRunPlanItemCompleted(new cGatherPublishCompletedEventArgs()
                                {
                                    DataSource = m_DataTable,
                                    TaskEntity = taskEntity,
                                });
                            }
                        }
                        else if (taskEntity.TriggerType == EnumGloabParas.EnumTriggerType.Publish)
                        {
                            if (e_OnGatherPublishCompleted != null)
                            {
                                e_OnGatherPublishCompleted(new cGatherPublishCompletedEventArgs()
                                {
                                    DataSource = m_DataTable,
                                    TaskEntity = taskEntity,
                                });
                            }
                        }
                        else
                        {
                            if (e_OnGatherPublishCompleted != null)
                            {
                                e_OnGatherPublishCompleted(new cGatherPublishCompletedEventArgs()
                                {
                                    DataSource = m_DataTable,
                                    TaskEntity = taskEntity,
                                });
                            }
                        }
                        #endregion
                    }
                    else
                    {
                        if (e_GatherNotityCompleted != null)
                        {
                            e_GatherNotityCompleted(new cGatherPublishCompletedEventArgs()
                            {
                                DataSource = m_DataTable,
                                TaskEntity = taskEntity,
                            });
                        }
                    }
                }
                #endregion
            });
            cGaterWeb.e_OnGatherDataCompleted += new OnGatherDataCompleted(delegate(cGatherDataEventArgs evt)
            {
                dgvRunTaskList.Invoke(new MethodInvoker(delegate()
                {
                    if (m_DataTable != null)
                    {
                        m_DataTable.Merge(evt.dataTable);
                        dgvRunTaskList.DataSource = m_DataTable;
                        AutoNum--;
                        if (AutoNum < 0)
                        {
                            AutoNum = StaticConst.AutoSaveNum;
                            SaveData();
                            SaveTaskFile(taskFilePath, evt);
                        }
                    }
                    else
                    {
                        m_DataTable = evt.dataTable;
                        dgvRunTaskList.AutoGenerateColumns = true;
                        dgvRunTaskList.DataSource          = m_DataTable;
                    }
                    dgvRunTaskList.FirstDisplayedScrollingRowIndex = dgvRunTaskList.RowCount - 1;
                }));
            });
        }