Ejemplo n.º 1
0
        public frmViewData(string taskTempName)
        {
            InitializeComponent();
            string      errMsg       = string.Empty;
            string      taskFilePath = @"Run\" + taskTempName + ".xml";
            TaskRunItem taskEntity   = XmlHelper.LoadFromXml <TaskRunItem>(Program.GetConfigPath(taskFilePath), ref errMsg);

            if (!string.IsNullOrEmpty(errMsg))
            {
                WinFormLib.Core.MessageBoxHelper.ShowError(errMsg);
                return;
            }
            this.TaskTempName = taskTempName;
            DataTable dataTable = new DataTable();

            dataTable.Columns.Add("Url");
            dataTable.Columns.Add("GaterherFlag");
            foreach (var item in taskEntity.GatherUrlItemCompleteList)
            {
                DataRow dr = dataTable.NewRow();
                dr["Url"]          = item.Url;
                dr["GaterherFlag"] = item.GaterherFlag.ToString();
                dataTable.Rows.Add(dr);
            }
            dgvList.DataSource = dataTable;
            int totalCount = taskEntity.GatherUrlItemCompleteList.Count;
            int errCount   = taskEntity.GatherUrlItemCompleteList.Where(q => q.GaterherFlag == EnumGloabParas.EnumUrlGaterherState.Error).Count();

            toolStripStatusLabel1.Text = "当前数据(" + errCount + "/" + totalCount + "):";
            tsExportExcel.Visible      = false;
            tsExportTxt.Visible        = false;
        }
Ejemplo n.º 2
0
 public frmPublish(TaskRunItem _taskEntity, DataTable _dataSource)
 {
     InitializeComponent();
     this.TaskEntity             = _taskEntity;
     this.DataSource             = _dataSource;
     this.pubProgressBar.Minimum = 0;
     this.pubProgressBar.Maximum = 100;
     this.SetStyle(ControlStyles.DoubleBuffer | ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint, true);
     this.UpdateStyles();
 }
Ejemplo n.º 3
0
        public void LoadTask(TaskRunItem _taskItemEntity)
        {
            this.GatherTaskType   = EnumGloabParas.EnumGatherTaskType.Noraml;
            this.m_TaskItemEntity = _taskItemEntity;
            this.ThreadNum        = _taskItemEntity.ThreadNum;
            runWebUrls            = new cGatherUrlItemDictionary();
            runFileUrls           = new cGatherUrlBaseItemDictionary();

            for (var i = 0; i < this.ThreadNum; i++)
            {
                runWebUrls.Add(i, new cGatherUrlItemQueue());
                runFileUrls.Add(i, new cGatherUrlBaseItemQueue());
            }
            if (_taskItemEntity.GatherUrlItemTempList != null)
            {
                List <cGatherUrlItem> mainList = _taskItemEntity.GatherUrlItemTempList.Where(q => q.GaterherFlag != EnumGloabParas.EnumUrlGaterherState.Run).ToList();
                foreach (var item in mainList)
                {
                    runWebUrls[0].Enqueue(item);
                }
                mainList = _taskItemEntity.GatherUrlItemTempList.Where(q => q.GaterherFlag == EnumGloabParas.EnumUrlGaterherState.Run).ToList();
                foreach (var item in mainList)
                {
                    runWebUrls[ThreadPos].Enqueue(item);
                }
            }
            if (_taskItemEntity.GatherFileItemTempList != null)
            {
                foreach (var item in _taskItemEntity.GatherFileItemTempList)
                {
                    runFileUrls[ThreadPos].Enqueue(item);
                }
            }
            if (_taskItemEntity.GatherUrlItemCompleteList != null)
            {
                this.runWebUrls.AddRange(_taskItemEntity.GatherUrlItemCompleteList);
            }
            if (_taskItemEntity.GatherFileItemCompleteList != null)
            {
                this.runFileUrls.AddRange(_taskItemEntity.GatherFileItemCompleteList);
            }
            this.GatherTaskType = EnumGloabParas.EnumGatherTaskType.RunData;
        }
        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;
                }));
            });
        }
 public void Reset(TaskRunItem _taskEntity)
 {
     this.cGaterWeb.LoadTask(taskEntity);
 }
Ejemplo n.º 6
0
 public cGatherTaskManage(TaskRunItem _taskItemEntity)
 {
     this.LoadTask(_taskItemEntity);
 }
Ejemplo n.º 7
0
        private void cnTask_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {
            string text = e.ClickedItem.Text;

            if (text == "去除重复数据")
            {
                string      taskFilePath = @"Run\" + this.TaskTempName + ".xml";
                string      errMsg       = string.Empty;
                TaskRunItem taskEntity   = XmlHelper.LoadFromXml <TaskRunItem>(Program.GetConfigPath(taskFilePath), ref errMsg);
                if (!string.IsNullOrEmpty(errMsg))
                {
                    WinFormLib.Core.MessageBoxHelper.ShowError(errMsg);
                    return;
                }
                taskEntity.GatherUrlItemCompleteList = taskEntity.GatherUrlItemCompleteList.Distinct(new cGatherUrlItemComparer()).ToList();

                XmlHelper.Save2File <TaskRunItem>(taskEntity, Program.GetConfigPath(taskFilePath), ref errMsg);
                if (!string.IsNullOrEmpty(errMsg))
                {
                    WinFormLib.Core.MessageBoxHelper.ShowError(errMsg);
                    return;
                }
                MessageBoxHelper.Show("去除重复数据成功,请重新打开运行记录!");
                return;
            }
            if (exportFile.ThreadState == EnumGloabParas.EnumThreadState.Run)
            {
                MessageBoxHelper.ShowError("file is exporting");
                return;
            }
            if (m_DataTable != null)
            {
                int dataType = e.ClickedItem.Text == "导出文本数据" ? 1 : 2;
                if (exportFileThread != null)
                {
                    exportFileThread.Abort();
                    exportFileThread = null;
                }
                if (dataType == 1)
                {
                    saveFileDialog1.Filter = "txt|*.txt";
                    saveFileDialog1.Title  = "导出为文本文件";
                }
                else if (dataType == 2)
                {
                    saveFileDialog1.Filter = "97-2003 Excel工作簿|*.xls";
                    saveFileDialog1.Title  = "导出为Excel文件";
                }
                else
                {
                    return;
                }
                DialogResult result = saveFileDialog1.ShowDialog();
                if (result == System.Windows.Forms.DialogResult.OK)
                {
                    exportFile.m_DataTable      = m_DataTable;
                    exportFile.ConnectionString = saveFileDialog1.FileName;
                    if (dataType == 1)
                    {
                        exportFileThread = new Thread(new ThreadStart(exportFile.ExportToTxt));
                        exportFileThread.Start();
                    }
                    else
                    {
                        exportFileThread = new Thread(new ThreadStart(exportFile.ExportToExcel));
                        exportFileThread.Start();
                    }
                }
            }
        }