示例#1
0
        private void PushDownloadHtml(object sender, EventArgs e)
        {
            var rabbitMqServer = RabbitMQManager.GetRabbitMQServer("rabbitMQ_DownloadComment");
            var publisher      = new ProducerBasic(rabbitMqServer, ConsumerDownlaodHtml.WSS_DOWNLOADHTML);
            var productAdapter = new ProductAdapter(new SqlDb(QT.Entities.Server.ConnectionString));
            var companys       = eventGetCompanys();

            foreach (var companyId in companys)
            {
                int       pageIndex  = 1;
                DataTable lstProduct = productAdapter.GetProductLinkPushDownloadHtml(companyId, pageIndex);
                while (lstProduct.Rows.Count > 0)
                {
                    foreach (DataRow tuple in lstProduct.Rows)
                    {
                        while (true)
                        {
                            try
                            {
                                publisher.Publish(new QT.Entities.CrawlerProduct.Comment.JobComment()
                                {
                                    CompanyId = companyId, ProductId = Convert.ToInt64(tuple["ID"]), Url = Convert.ToString(tuple["DetailUrl"])
                                }
                                                  .ToArbyteJSON());
                                break;
                            }
                            catch (Exception ex)
                            {
                                log.Info(ex);
                                Thread.Sleep(1000);
                            }
                        }
                    }
                    lstProduct = productAdapter.GetProductLinkPushDownloadHtml(companyId, ++pageIndex);
                }
            }
            MessageBox.Show(string.Format("Pushed for {0} company!", companys.Count));
        }
示例#2
0
        public override void ProcessMessage(global::RabbitMQ.Client.Events.BasicDeliverEventArgs message)
        {
            var productAdapter = new ProductAdapter(new SqlDb(QT.Entities.Server.ConnectionString));
            var CompanyId      = Convert.ToInt64(Encoding.UTF8.GetString(message.Body));
            var pageIndex      = 1;
            var tblProduct     = productAdapter.GetProductLinkPushDownloadHtml(CompanyId, pageIndex);

            while (tblProduct.Rows.Count > 0)
            {
                foreach (DataRow VARIABLE in tblProduct.Rows)
                {
                    DownlaodHtml(Convert.ToInt64(VARIABLE["ID"]), CompanyId, Convert.ToString(VARIABLE["DetailUrl"]));
                }
            }
            GetChannel().BasicAck(message.DeliveryTag, true);
        }