Exemplo n.º 1
0
        private void simpleButton1_Click(object sender, EventArgs e)
        {
            QT.Entities.RaoVat.ETypeCrawlRaoVat status = Entities.RaoVat.ETypeCrawlRaoVat.None;
            Enum.TryParse <QT.Entities.RaoVat.ETypeCrawlRaoVat>(cbStatus.SelectedValue.ToString(), out status);

            PushData(status);
        }
Exemplo n.º 2
0
 private void btnStart_Click(object sender, EventArgs e)
 {
     QT.Entities.RaoVat.ETypeCrawlRaoVat status = Entities.RaoVat.ETypeCrawlRaoVat.None;
     Enum.TryParse <QT.Entities.RaoVat.ETypeCrawlRaoVat>(cbStatus.SelectedValue.ToString(), out status);
     thread = new Thread(() =>
     {
         while (true)
         {
             try
             {
                 PushData(status);
             }
             catch (ThreadAbortException ex1)
             {
                 break;
             }
             catch (Exception ex2)
             {
                 WriteLog(string.Format("Exception when push:{0}", ex2.Message));
             }
             Thread.Sleep(10000);
         }
     });
     thread.Start();
 }
Exemplo n.º 3
0
        private void PushData(QT.Entities.RaoVat.ETypeCrawlRaoVat typeCrawler)
        {
            var       sqlDb             = new SqlDb(QT.Entities.Server.ConnectionString);
            DataTable tblConfigNeedPush = this.gridControl1.DataSource as DataTable;

            foreach (DataRow itemRow in tblConfigNeedPush.Rows)
            {
                int       ConfigID = Convert.ToInt32(itemRow["Id"]);
                DataTable checkExistInQueueWait = sqlDb.GetTblData(
                    @"SELECT TOP 1 * FROM QueueWait 
                          WHERE ConfigID = @ConfigID And TypeCrawler = @TypeCrawler"
                    , CommandType.Text, new SqlParameter[] {
                    SqlDb.CreateParamteterSQL("ConfigID", ConfigID, SqlDbType.Int),
                    SqlDb.CreateParamteterSQL("TypeCrawler", typeCrawler, SqlDbType.Int)
                });
                if (checkExistInQueueWait.Rows.Count == 0)
                {
                    //Delelete all visited link
                    sqlDb.RunQuery("delete from VisitedPage where ConfigId = @ConfigID and TypeCrawler = @TypeCrawler",
                                   CommandType.Text, new SqlParameter[] {
                        SqlDb.CreateParamteterSQL("@ConfigID", ConfigID, SqlDbType.Int),
                        SqlDb.CreateParamteterSQL("@TypeCrawler", 1, SqlDbType.Int)
                    });

                    //PushJob.
                    string        url   = itemRow["rootLink"].ToString();
                    List <string> arUrl = Common.GetListXPathFromString(url);

                    foreach (var iUrl in arUrl)
                    {
                        try
                        {
                            List <string> lstUrl = new List <string>();

                            //Phân tích Url con từ Url Mẫu.
                            if (iUrl.Contains(@"!!!!!"))
                            {
                                lstUrl.Add(iUrl.Replace("!!!!!", "1"));
                                lstUrl.Add(iUrl.Replace("!!!!!", "2"));
                                lstUrl.Add(iUrl.Replace("!!!!!", "3"));
                                lstUrl.Add(iUrl.Replace("!!!!!", "4"));
                            }
                            else
                            {
                                lstUrl.Add(iUrl);
                            }

                            foreach (string str in lstUrl)
                            {
                                sqlDb.RunQuery(@"Insert into QueueWait (ConfigID, TypeCrawler, CrcUrl, Url, Deep) values 
                                     (@ConfigID, @TypeCrawler, @CrcUrl, @Url, 0)", CommandType.Text, new SqlParameter[]
                                {
                                    SqlDb.CreateParamteterSQL("@ConfigID", ConfigID, SqlDbType.Int),
                                    SqlDb.CreateParamteterSQL("@TypeCrawler", Convert.ToInt32(typeCrawler), SqlDbType.Int),
                                    SqlDb.CreateParamteterSQL("@CrcUrl", Math.Abs(GABIZ.Base.Tools.getCRC32(Common.CompactUrl(str)))
                                                              , SqlDbType.Int),
                                    SqlDb.CreateParamteterSQL("@Url", str, SqlDbType.NVarChar)
                                });
                                WriteLog(string.Format("Pushed url:{0}", str));
                            }
                        }
                        catch (Exception ex)
                        {
                            WriteLog(ex.Message);
                        }
                    }
                }
                else
                {
                    WriteLog("Wait next");
                }
            }
        }