public ConsumerReload(CancellationToken token, string nameThread) { _rabbitmqServer = RabbitMQManager.GetRabbitMQServer(ConfigCrawler.KeyRabbitMqCrawler); _cancellationToken = token; _queueName = ConfigCrawler.QueueCompanyReload; _nameThread = nameThread; }
protected override void OnStart(string[] args) { rabbitMQServer = RabbitMQManager.GetRabbitMQServer("rabbitMQ177"); worker = new Worker("ChangePriceQueue.LogToSql", false, rabbitMQServer); Task workerTask = new Task(() => { log.Info("Start consumer!"); worker.JobHandler = (downloadImageJob) => { string connectToSQL = @"Data Source=172.22.30.86,1455;Initial Catalog=QT_2;Persist Security Info=True;User ID=qt_vn;Password=@F4sJ=l9/ryJt9MT;connection timeout=200"; CrawlerProductAdapter crawlerProductAdapter = new CrawlerProductAdapter(new SqlDb(connectToSQL)); log.Info("Get job from MQ"); try { Encoding enc = new UTF8Encoding(true, true); string strData = enc.GetString(downloadImageJob.Data); JobRabbitChangePrice job = JsonConvert.DeserializeObject <JobRabbitChangePrice>(strData); crawlerProductAdapter.SaveLog(job.ProductID, job.NewPrice, job.OldPrice); log.Info(string.Format("Log for {0}", strData)); return(true); } catch (Exception ex01) { log.Error("Exception:", ex01); return(true); } }; worker.Start(); }); workerTask.Start(); Console.ReadLine(); }
public MessageChannel(Container container, RabbitMQServer server, ICommandDiscovery commandDiscovery, IEventDiscovery eventDiscovery) { _container = container; _server = server; _commandDiscovery = commandDiscovery; _eventDiscovery = eventDiscovery; }
protected override void OnStart(string[] args) { log.Info("Start service"); try { InitializeComponent(); cancelTokenSource = new CancellationTokenSource(); string rabbitMQServerName = ConfigurationManager.AppSettings["rabbitMQ31ServerName"]; workers = new Worker[workerCount]; rabbitMQServer = RabbitMQManager.GetRabbitMQServer(rabbitMQServerName); QT.Moduls.LogCassandra.LogCrawler logCass = new QT.Moduls.LogCassandra.LogCrawler(); var db = new QT.Entities.Data.SqlDb(this.connectionString); for (int i = 0; i < workerCount; i++) { log.InfoFormat("Start worker {i}", i.ToString()); var worker = new Worker(CrawlerProductLog, false, rabbitMQServer); workers[i] = worker; var token = this.cancelTokenSource.Token; Task workerTask = new Task(() => { worker.JobHandler = (updateDatafeedJob) => { try { token.ThrowIfCancellationRequested(); QT.Entities.CrawlerProduct.RabbitMQ.MssLogCassandra mss = QT.Entities.CrawlerProduct.RabbitMQ.MssLogCassandra.GetDataFromMessage(updateDatafeedJob.Data); logCass.SaveLogToCassandra(mss.log, (QT.Moduls.LogCassandra.LogCode)mss.logCode, (QT.Moduls.LogCassandra.TypeLog)mss.typeLog, mss.data_id, mss.data_second_id, null, mss.session); log.InfoFormat("Log crawler company {0} : {1} ", mss.data_id, mss.data_second_id); return(true); } catch (OperationCanceledException opc) { log.Info("End worker"); return(true); } catch (Exception ex01) { log.Info(ex01); return(true); } }; worker.Start(); }, token); workerTask.Start(); log.InfoFormat("Worker {0} started", i); } } catch (Exception ex) { log.Error("Start error", ex); throw; } }
public void InitQueue(RabbitMQServer rabbitmqServer, string queueName) { if (string.IsNullOrEmpty(queueName)) { return; } while (true) { try { var imodel = rabbitmqServer.CreateChannel(); if (imodel != null) { imodel.QueueDeclare(queueName, true, false, false, null); break; } else { Thread.Sleep(1000); } } catch (Exception ex) { _log.Error(ex); Thread.Sleep(1000); } } }
protected override void OnStart(string[] args) { log.Info("Start service"); try { InitializeComponent(); cancelTokenSource = new CancellationTokenSource(); string rabbitMQServerName = ConfigurationManager.AppSettings["rabbitMQServerName"]; workers = new Worker[workerCount]; rabbitMQServer = RabbitMQManager.GetRabbitMQServer(rabbitMQServerName); Encoding enc = new UTF8Encoding(true, true); for (int i = 0; i < workerCount; i++) { log.InfoFormat("Start worker {i}", i.ToString()); var worker = new Worker(ChangePriceToRedisJobName, false, rabbitMQServer); workers[i] = worker; var token = this.cancelTokenSource.Token; Task workerTask = new Task(() => { worker.JobHandler = (downloadImageJob) => { try { token.ThrowIfCancellationRequested(); JobRabbitChangePrice job = JsonConvert.DeserializeObject <JobRabbitChangePrice>(enc.GetString(downloadImageJob.Data)); WebRequest client = WebRequest.Create(string.Format(@"http://172.22.1.108:8983/api/PriceDetector/price_detect.htm?pn={0}", Uri.EscapeDataString(job.Name))); string strData = (new StreamReader(client.GetResponse().GetResponseStream()).ReadToEnd()); MsCheckPrice msCheckPrice = WSS.Service.CheckPriceProduct.MsCheckPrice.FromJSON(strData); bool failPrice = false; if (job.NewPrice > 0) { if (msCheckPrice.price > 100000) { if (job.NewPrice > msCheckPrice.price * (decimal)2 || job.NewPrice < msCheckPrice.price / (decimal)2) { failPrice = true; } log.Info(string.Format("CompanyID: {0} ProductID: {1} OldPrice: {2} OldPrice: {3} FailProduct: {4} SuggestPrice: {5}", job.CompanyID, job.ProductID, job.OldPrice, job.NewPrice, failPrice, msCheckPrice.price)); } } return(true); } catch (OperationCanceledException opc) { log.Info("End worker"); return(false); } }; worker.Start(); }, token); workerTask.Start(); log.InfoFormat("Worker {0} started", i); } } catch (Exception ex) { log.Error("Start error", ex); throw; } }
public WorkerChangePriceToSqlHistoryPrice(string jobName, bool autoAck, RabbitMQServer rabbitMqServer, CancellationToken token) : base(jobName, autoAck, rabbitMqServer) { _token = token; Init(); }
public ConsumerReload(RabbitMQServer rabbitmqServer, string queueName, CancellationToken token, string nameThread = "") { _rabbitmqServer = rabbitmqServer; _cancellationToken = token; _queueName = queueName; _nameThread = nameThread; }
protected override void OnStart(string[] args) { try { _workers = new WorkerBasic[_workerCount]; _rabbitMqServer = RabbitMQManager.GetRabbitMQServer(ConfigRabbitMqIndividualCategoryWebsites.RabbitMqServerName); for (var i = 0; i < _workerCount; i++) { var worker = new WorkerBasic(_rabbitMqServer, ConfigRabbitMqIndividualCategoryWebsites.QueueRootProductAnalyzed); _workers[i] = worker; var workerTask = new Task(() => { worker.JobHandler = (rootProductJob) => { try { RootProductAnalyzed(rootProductJob); } catch (Exception exception) { Log.Error("Execute Job Error.", exception); } }; worker.Start(); }); workerTask.Start(); Log.InfoFormat("Worker {0} started", i); } } catch (Exception exception) { Log.Error("Start error", exception); throw; } }
public void PushCompanyDownload(long companyId) { Company cmp = new Company(companyId); string queue = Config.QueueWaitDownloadHtml + "." + cmp.Domain; _publisherJob = ProducerData.Instance(Config.RabbitMQServerComment); RabbitMQServer rabbitMqServer = RabbitMQManager.GetRabbitMQServer(Config.RabbitMQServerComment); var Chanel = rabbitMqServer.CreateChannel(); Chanel.QueueDeclare(queue, true, false, false, null); var productAdapter = new SqlDb(QT.Entities.Server.ConnectionString); DataTable tblProduct; var page = 1; do { const string query = @"SELECT ID, DetailUrl FROM Product WHERE Company = @COmpanyID ORDER BY ID OFFSET ((@Page-1)*10000) ROWS FETCH NEXT 10000 ROWS ONLY "; tblProduct = productAdapter.GetTblData(query, CommandType.Text, new SqlParameter[] { SqlDb.CreateParamteterSQL("@Page", page++, SqlDbType.Int), SqlDb.CreateParamteterSQL("@CompanyID", companyId, SqlDbType.BigInt) }); PushJob(tblProduct, companyId, queue); } while (tblProduct.Rows.Count > 0); }
protected override void OnStart(string[] args) { rabbitMQServer = RabbitMQManager.GetRabbitMQServer("rabbitMQ177"); worker = new Worker("ChangePriceQueue.LogToRedis", false, rabbitMQServer); Task workerTask = new Task(() => { log.Info("Start consumer!"); worker.JobHandler = (downloadImageJob) => { log.Info("Get job from MQ"); try { Encoding enc = new UTF8Encoding(true, true); string strData = enc.GetString(downloadImageJob.Data); JobRabbitChangePrice job = JsonConvert.DeserializeObject <JobRabbitChangePrice>(strData); RedisPriceLogAdapter.PushMerchantProductPrice(job.ProductID, job.NewPrice, DateTime.Now); log.Info(string.Format("Saved for job:{0}", strData)); return(true); } catch (Exception ex01) { log.Error("Exception:", ex01); return(true); } }; worker.Start(); }); workerTask.Start(); Console.ReadLine(); }
public NotificationConsumer(RabbitMQServer rabbitMQServer, string queueName, bool autoAck, string Pasword) : base(rabbitMQServer, queueName, autoAck) { this._rabbitMQServer = rabbitMQServer; this._queueName = queueName; this._autoAck = autoAck; }
private void btnDelete_Click(object sender, EventArgs e) { strQueue = cboQueue.Text; cancelTokenSource = new CancellationTokenSource(); string rabbitMQServerName = "rabbitMQ177"; workers = new Worker[workerCount]; rabbitMQServer = RabbitMQManager.GetRabbitMQServer(rabbitMQServerName); for (int i = 0; i < workerCount; i++) { var worker = new Worker(strQueue, false, rabbitMQServer); workers[i] = worker; var token = this.cancelTokenSource.Token; Task workerTask = new Task(() => { worker.JobHandler = (updateDatafeedJob) => { try { return(true); } catch (OperationCanceledException opc) { return(true); } catch (Exception ex01) { return(true); } }; worker.Start(); }, token); workerTask.Start(); } }
public void Download() { _workers = new Worker[_workerProduct + _workerCompany + 1]; _rabbitMqServer = RabbitMQManager.GetRabbitMQServer(ConfigImages.RabbitMqServerName); _checkErrorJobClient = new JobClient(ConfigImages.ImboExchangeImages, GroupType.Topic, ConfigImages.ImboRoutingKeyCheckErrorDownload, true, _rabbitMqServer); for (var i = 0; i < _workerProduct; i++) { var worker = new Worker(ConfigImages.ImboQueueDownloadImageProduct, false, _rabbitMqServer); _workers[i] = worker; var workerTask = new Task(() => { //JobClient send message to service upload sql & thumb của tráng var producerUpdateImageIdSql = new ProducerBasic(_rabbitMqServer, ConfigImages.ImboExchangeImages, ConfigImages.ImboRoutingKeyUploadImageIdSql); //var producerDelImage = new ProducerBasic(_rabbitMqServer, ConfigImages.ImboExchangeImages, ConfigImages.ImboRoutingKeyThumbImage); worker.JobHandler = (downloadImageJob) => { try { DownloadImageProduct(ImageProductInfo.GetDataFromMessage(downloadImageJob.Data), producerUpdateImageIdSql); } catch (Exception exception) { Log.Error("Execute Job Error.", exception); } return(true); }; worker.Start(); }); workerTask.Start(); Log.InfoFormat("Worker {0} started", i); } }
private void Init() { rabbitMQServerName = ConfigurationSettings.AppSettings["rabbitMQServerName"]; rankKeywordGroupName = ConfigurationSettings.AppSettings["rankKeywordGroupName"]; checkRankKeywordJobName = ConfigurationSettings.AppSettings["checkRankKeywordJobName"]; rabbitMQServer = RabbitMQManager.GetRabbitMQServer(rabbitMQServerName); jobClient = new JobClient(rankKeywordGroupName, GroupType.Topic, checkRankKeywordJobName, true, rabbitMQServer); }
public MQ_ReCacheCompany() { this.rabbitMQServer = RabbitMQManager.GetRabbitMQServer("rabbitMQ177"); string updateProductGroupName_ChangeMainInfo = System.Configuration.ConfigurationManager.AppSettings["updateProductGroupName"].ToString(); string updateProductJobName_ChangeMainInfo = System.Configuration.ConfigurationManager.AppSettings["updateProductToWebJobName"].ToString(); this.updateProductJobClient_PushCompany = new JobClient(updateProductGroupName_ChangeMainInfo, GroupType.Topic, updateProductJobName_ChangeMainInfo, true, rabbitMQServer); }
public ServiceCacheProductInfo() { InitializeComponent(); rabbitMQServer = RabbitMQManager.GetRabbitMQServer("rabbitMQ177"); workerCount = QT.Entities.Common.Obj2Int(ConfigurationManager.AppSettings["workerCount"], 1); connectionString = ConfigurationManager.AppSettings["ConnectionString"]; refreshCacheProductInfoJobName = ConfigurationManager.AppSettings["productInfoRefreshJobName"]; }
public ConsumerDownloadHtml(RabbitMQServer rabbitmqServer, string domain) : base(rabbitmqServer, Config.QueueWaitDownloadHtml + "." + domain, false) { _noSqlHtml = NoSqlCommentSystem.Instance(); _queueAS = Config.QueueWaitAsComment + "." + domain; _producerAfterDownload = new ProducerBasic(rabbitmqServer, Config.QueueWaitAsComment + "." + domain); }
public FrmUpLoadListLogo() { InitializeComponent(); companyTableAdapter.Connection.ConnectionString = ConnectionCommon.ConnectionWebsosanh; company_AutoGenerateLogoTableAdapter.Connection.ConnectionString = ConnectionCommon.ConnectionWebsosanh; _rabbitMqServer = RabbitMQManager.GetRabbitMQServer(ConfigImages.RabbitMqServerName); _jobClientDownloadImage = new JobClient("Merchant", GroupType.Topic, "Update", true, _rabbitMqServer); }
public NotificationPublisher(RabbitMQServer rabbitMQServer, string exchangeName, string routingKey, string queueName) : base(rabbitMQServer, exchangeName, routingKey, queueName) { this.rabbitMQServer = rabbitMQServer; this._exchangeName = exchangeName; this._routingKey = routingKey; this._queueName = queueName; }
public CacheCompanyService() { InitializeComponent(); rabbitMQServer = RabbitMQManager.GetRabbitMQServer("rabbitMQ177"); workerCount = QT.Entities.Common.Obj2Int(ConfigurationManager.AppSettings["workerCount"], 1); connectionString = ConfigurationManager.AppSettings["ConnectionString"]; jobName = ConfigurationManager.AppSettings["checkDuplicateRefreshJobName"]; }
public ServiceLogCommentNotify() { InitializeComponent(); _connectionString = ConfigurationManager.AppSettings["UserConnectionString"]; _rabbitMqServer = RabbitMQManager.GetRabbitMQServer("rabbitMQ177"); _workerCount = int.Parse(ConfigurationManager.AppSettings["WorkerCount"]); //OnStart(new string[] { }); }
public ServiceCrawlerProductUpdateLastJob() { InitializeComponent(); rabbitMQServer = RabbitMQManager.GetRabbitMQServer("rabbitMQ177"); workerCount = QT.Entities.Common.Obj2Int(ConfigurationManager.AppSettings["workerCount"], 1); connectionString = ConfigurationManager.AppSettings["ConnectionString"]; CrawlerProductLastJob = ConfigurationManager.AppSettings["CrawlerProductLastJobNane"]; }
private void FrmPromotionSingleProduct_Load(object sender, EventArgs e) { // TODO: This line of code loads data into the 'dBProduct.Product' table. You can move, or remove it, as needed. this.productTableAdapter.Connection.ConnectionString = ConnectionCommon.ConnectionProduct; //RabbitMq _rabbitMqServer = RabbitMQManager.GetRabbitMQServer(ConfigRabbitMqCacheSolrAndRedis.RabbitMqServerName); _updateProductJobClient = new JobClient(ConfigRabbitMqCacheSolrAndRedis.ExchangeProduct, GroupType.Topic, ConfigRabbitMqCacheSolrAndRedis.RoutingKeyUpdateSolrAndRedis, true, _rabbitMqServer); }
protected override void OnStart(string[] args) { log.Info("Start service"); try { InitializeComponent(); cancelTokenSource = new CancellationTokenSource(); string rabbitMQServerName = ConfigurationManager.AppSettings["rabbitMQServerName"]; workers = new Worker[workerCount]; rabbitMQServer = RabbitMQManager.GetRabbitMQServer(rabbitMQServerName); string connectToSQL = @"Data Source=172.22.30.86,1455;Initial Catalog=QT_2;Persist Security Info=True;User ID=qt_vn;Password=@F4sJ=l9/ryJt9MT;connection timeout=200"; string connectToConnection = @"Data Source=42.112.28.93;Initial Catalog=QT_2;Persist Security Info=True;User ID=wss_price;Password=HzlRt4$$axzG-*UlpuL2gYDu;connection timeout=200"; CrawlerProductAdapter crawlerProductAdapter = new CrawlerProductAdapter(new SqlDb(connectToSQL)); ProductAdapter productAdapter = new ProductAdapter(new SqlDb(connectToConnection)); Encoding enc = new UTF8Encoding(true, true); for (int i = 0; i < workerCount; i++) { log.InfoFormat("Start worker {i}", i.ToString()); var worker = new Worker(AddProductToSqlJobName, false, rabbitMQServer); workers[i] = worker; var token = this.cancelTokenSource.Token; Task workerTask = new Task(() => { worker.JobHandler = (downloadImageJob) => { try { token.ThrowIfCancellationRequested(); string strData = enc.GetString(downloadImageJob.Data); JobRabbitAddProduct job = JsonConvert.DeserializeObject <JobRabbitAddProduct>(strData); if (job.DateAdd == DateTime.MinValue) { job.DateAdd = productAdapter.GetLastChangeOfProduct(job.ProductID); } crawlerProductAdapter.SaveLogAddProduct(job.ProductID, job.DetailUrl, job.IDCompnay, job.Name, job.DateAdd); log.Info(string.Format("Log for {0}", strData)); return(true); } catch (OperationCanceledException opc) { log.Info("End worker"); return(false); } }; worker.Start(); }, token); workerTask.Start(); log.InfoFormat("Worker {0} started", i); } } catch (Exception ex) { log.Error("Start error", ex); throw; } }
public void Process() { string rabbitMQServerName = "rabbitMQ109"; rabbitMQServer = RabbitMQManager.GetRabbitMQServer(rabbitMQServerName); Worker worker = new Worker(rabbitMQServer, "product_an_item_result", false); worker.StartConsume(); }
public ProducerBasic(RabbitMQServer rabbitmqServer, string queueName) : base(rabbitmqServer) { this._queueName = queueName; this.ExchangeName = ""; this.RoutingKey = queueName; InitQueue(rabbitmqServer, queueName); }
static void Main(string[] args) { //try //{ // ConnectionFactory factory = new ConnectionFactory(); // factory.HostName = "localhost"; // factory.Port = 5672; // factory.UserName = "******"; // factory.Password = "******"; // using (IConnection conn = factory.CreateConnection()) // { // using (IModel channel = conn.CreateModel()) // { // //在MQ上定义一个持久化队列,如果名称相同不会重复创建 // channel.QueueDeclare("MyFirstQueue", true, false, false, null); // //输入1,那如果接收一个消息,但是没有应答,则客户端不会收到下一个消息 // channel.BasicQos(0, 1, false); // Console.WriteLine("Listening..."); // //在队列上定义一个消费者 // QueueingBasicConsumer consumer = new QueueingBasicConsumer(channel); // //消费队列,并设置应答模式为程序主动应答 // channel.BasicConsume("MyFirstQueue", false, consumer); // while (true) // { // //阻塞函数,获取队列中的消息 // BasicDeliverEventArgs ea = (BasicDeliverEventArgs)consumer.Queue.Dequeue(); // byte[] bytes = ea.Body; // string str = Encoding.UTF8.GetString(bytes); // RequestMsg msg = JsonConvert.DeserializeObject<RequestMsg>(str); // Console.WriteLine("HandleMsg:" + msg.ToString()); // //回复确认 // channel.BasicAck(ea.DeliveryTag, false); // } // } // } //} //catch (Exception e1) //{ // Console.WriteLine(e1.ToString()); //} try { RabbitMQServer server = new RabbitMQServer(); server.ConsumerReceivedHandler += consumer_Received; server.Listen(); } catch (Exception e1) { Console.WriteLine(e1.ToString()); } Console.ReadLine(); }
protected override void OnStart(string[] args) { log.Info("Start service"); try { int numberQUeue = this.jobQueues.Count(); InitializeComponent(); cancelTokenSource = new CancellationTokenSource(); Server.LogConnectionString = ConfigurationManager.AppSettings["LogConnectionString"]; QT.Entities.Server.ConnectionString = connectionString; string rabbitMQServerName = ConfigurationManager.AppSettings["rabbitMQServerName"]; workers = new Worker[numberQUeue]; rabbitMQServer = RabbitMQManager.GetRabbitMQServer(rabbitMQServerName); for (int i = 0; i < numberQUeue; i++) { int indexQueue = i; log.InfoFormat("Start worker {i}", i.ToString()); var worker = new Worker(this.jobQueues[indexQueue], false, rabbitMQServer); workers[i] = worker; var token = this.cancelTokenSource.Token; Task workerTask = new Task(() => { string queueName = this.jobQueues[indexQueue]; QT.Moduls.Notifycation.NotifycationAdapter adapter = new QT.Moduls.Notifycation.NotifycationAdapter(); worker.JobHandler = (updateDatafeedJob) => { try { string strMessage = System.Text.Encoding.UTF8.GetString(updateDatafeedJob.Data, 0, updateDatafeedJob.Data.Length); adapter.InsertMessage(queueName, strMessage, 0); log.Info(string.Format("MSS:{0}. Queue:{1}", strMessage, queueName)); return(true); } catch (OperationCanceledException opc) { log.Info("End worker"); return(true); } catch (Exception ex01) { log.Error(ex01); return(true); } }; worker.Start(); }, token); workerTask.Start(); log.InfoFormat("Worker {0} started", i); } } catch (Exception ex) { log.Error("Start error", ex); throw; } }
static void Main(string[] args) { Consumer consumer = null; RabbitMQServer rabbitMQServer = null; string jobNameKeyword = "product_an_item_result"; string rabbitMQServerName = "rabbitMQ109"; rabbitMQServer = RabbitMQManager.GetRabbitMQServer(rabbitMQServerName); consumer = new GetMessageFromRabbit(rabbitMQServer, jobNameKeyword, false); consumer.StartConsume(); }