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); } }
protected override void OnStart(string[] args) { try { _workers = new Worker[_workerCount]; _rabbitMqServer = RabbitMQManager.GetRabbitMQServer(ConfigImages.RabbitMqServerName); //JobClient send message to service update redis (a hoàng) _updateSolrAndRedisJobClient = new JobClient(ConfigRabbitMqCacheSolrAndRedis.ExchangeProduct, GroupType.Topic, ConfigRabbitMqCacheSolrAndRedis.RoutingKeyUpdateSolrAndRedis, true, _rabbitMqServer); for (var i = 0; i < _workerCount; i++) { var worker = new Worker(ConfigImages.QueueUpdateImagePath, false, _rabbitMqServer); _workers[i] = worker; var workerTask = new Task(() => { //JobClient send message to service update redis (a hoàng) var updateRedisJobClient = new JobClient(ConfigRabbitMqCacheSolrAndRedis.ExchangeProductRedis, GroupType.Direct, ConfigRabbitMqCacheSolrAndRedis.RoutingKeyUpdateRedis, true, _rabbitMqServer); //Jobclient send message to service insert log download image var historyJobClient = new JobClient(ConfigImages.ExchangeImages, GroupType.Topic, ConfigImages.RoutingKeyHistoryDownloadImage, true, _rabbitMqServer); worker.JobHandler = (downloadImageJob) => { try { var productAdapter = new DBProductTableAdapters.ProductTableAdapter(); productAdapter.Connection.ConnectionString = _connectionString; UpdateImagePathProduct(ImageProductInfo.GetDataFromMessage(downloadImageJob.Data), productAdapter, historyJobClient, updateRedisJobClient); } catch (Exception exception) { Log.Error("Execute Job Error.", exception); } return(true); }; worker.Start(); }); workerTask.Start(); Log.InfoFormat("Worker {0} started", i); } } catch (Exception exception) { Log.Error("Start error", exception); throw; } }
protected override void OnStart(string[] args) { try { _workers = new Worker[_workerCount]; _rabbitMqServer = RabbitMQManager.GetRabbitMQServer(ConfigImages.RabbitMqServerName); for (var i = 0; i < _workerCount; i++) { var worker = new Worker(ConfigImages.QueueCheckErrorDownload, false, _rabbitMqServer); _workers[i] = worker; var workerTask = new Task(() => { //Jobclient resend message to service download image var downloadImageProductJobClient = new JobClient(ConfigImages.ExchangeImages, GroupType.Topic, ConfigImages.RoutingKeyChangeImageProduct, true, _rabbitMqServer); //Jobclient send message to service insert log download image (check image fail 5 rep -> insert to History_DownloadImageProduct) var historyJobClient = new JobClient(ConfigImages.ExchangeImages, GroupType.Topic, ConfigImages.RoutingKeyHistoryDownloadImage, true, _rabbitMqServer); worker.JobHandler = (downloadImageJob) => { try { CheckErrorDownloadImageProduct(ImageProductInfo.GetDataFromMessage(downloadImageJob.Data), downloadImageProductJobClient, historyJobClient); } catch (Exception exception) { Log.Error("Execute Job Error.", exception); } return(true); }; worker.Start(); }); workerTask.Start(); Log.InfoFormat("Worker {0} started", i); } } catch (Exception exception) { Log.Error("Start error", exception); throw; } }
protected sealed override void OnStart(string[] args) { try { _historyProductAdapter.Connection.ConnectionString = _connectionString; _workers = new Worker[_workerProduct + _workerCompany + 1]; _rabbitMqServer = RabbitMQManager.GetRabbitMQServer(ConfigImages.RabbitMqServerName); _checkErrorJobClient = new JobClient(ConfigImages.ImboExchangeImages, GroupType.Topic, ConfigImages.ImboRoutingKeyCheckErrorDownload, true, _rabbitMqServer); #region Worker Product 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); } #endregion #region Worker RootProduct var workerSpGoc = new Worker(ConfigImages.ImboQueueDownloadImageRootProduct, false, _rabbitMqServer); _workers[_workerProduct] = workerSpGoc; var workerSpGocTask = new Task(() => { //JobClient send message to service upload sql & thumb của tráng var producerUpdateImageIdSql = new ProducerBasic(_rabbitMqServer, ConfigImages.ImboExchangeImages, ConfigImages.ImboRoutingKeyUploadImageIdSql); //var producerThumbImage = new ProducerBasic(_rabbitMqServer, ConfigImages.ImboExchangeImages, ConfigImages.ImboRoutingKeyThumbImage); workerSpGoc.JobHandler = (downloadImageJob) => { try { DownloadImageRootProduct(ImageProductInfo.GetDataFromMessage(downloadImageJob.Data), producerUpdateImageIdSql); } catch (Exception exception) { Log.Error("Execute Job Error.", exception); } return(true); }; workerSpGoc.Start(); }); workerSpGocTask.Start(); Log.InfoFormat("Worker(SpGoc) {0} started", _workerProduct); #endregion #region Worker Company for (var i = _workerProduct + 1; i <= _workerProduct + _workerCompany; i++) { var worker = new Worker(ConfigImages.ImboQueueDownloadImageCompany, 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 producerThumbImage = new ProducerBasic(_rabbitMqServer, ConfigImages.ImboExchangeImages, ConfigImages.ImboRoutingKeyThumbImage); worker.JobHandler = (downloadImageJob) => { long idCompany; try { idCompany = BitConverter.ToInt64(downloadImageJob.Data, 0); if (downloadImageJob.Type == (int)TypeJobWithRabbitMQ.ReloadAll) { DownloadImageCompany(idCompany, producerUpdateImageIdSql, true); } else { DownloadImageCompany(idCompany, producerUpdateImageIdSql, false); } } catch (Exception exception) { Log.Error("Execute Job Error.", exception); } return(true); }; worker.Start(); }); workerTask.Start(); Log.InfoFormat("Worker(Company) {0} started", i); } #endregion } catch (Exception exception) { Log.Error("Start error", exception); throw; } }
protected sealed override void OnStart(string[] args) { try { _workers = new Worker[_workerCount + 1]; _rabbitMqServer = RabbitMQManager.GetRabbitMQServer(ConfigImages.RabbitMqServerName); _checkErrorJobClient = new JobClient(ConfigImages.ExchangeImages, GroupType.Topic, ConfigImages.RoutingKeyCheckErrorDownload, true, _rabbitMqServer); for (var i = 0; i < _workerCount; i++) { var worker = new Worker(ConfigImages.QueueChangeImageProduct, false, _rabbitMqServer); _workers[i] = worker; var workerTask = new Task(() => { //JobClient send message to service thumbimage (viết kiểu ProducerBasic để gửi cho a quang) var thumbImageJobClient = new ProducerBasic(_rabbitMqServer, ConfigImages.ExchangeImages, ConfigImages.RoutingKeyThumbImage); //Jobclient send message to service update imagepath to sql var updateImagePathProductJobClient = new JobClient(ConfigImages.ExchangeImages, GroupType.Topic, ConfigImages.RoutingKeyUpdateImagePath, true, _rabbitMqServer); worker.JobHandler = (downloadImageJob) => { try { DownloadImageProduct(ImageProductInfo.GetDataFromMessage(downloadImageJob.Data), updateImagePathProductJobClient, thumbImageJobClient); } catch (Exception exception) { Log.Error("Execute Job Error.", exception); } return(true); }; worker.Start(); }); workerTask.Start(); Log.InfoFormat("Worker {0} started", i); } #region Tách 1 consumer ra để download ảnh sp gốc var workerSpGoc = new Worker(ConfigImages.QueueChangeImageRootProduct, false, _rabbitMqServer); _workers[_workerCount] = workerSpGoc; var workerSpGocTask = new Task(() => { //JobClient send message to service thumbimage (viết kiểu ProducerBasic để gửi cho a quang) var thumbImageJobClient = new ProducerBasic(_rabbitMqServer, ConfigImages.ExchangeImages, ConfigImages.RoutingKeyThumbImage); //Jobclient send message to service update imagepath to sql var updateImagePathProductJobClient = new JobClient(ConfigImages.ExchangeImages, GroupType.Topic, ConfigImages.RoutingKeyUpdateImagePath, true, _rabbitMqServer); workerSpGoc.JobHandler = (downloadImageJob) => { try { DownloadImageRootProduct(ImageProductInfo.GetDataFromMessage(downloadImageJob.Data), updateImagePathProductJobClient, thumbImageJobClient); } catch (Exception exception) { Log.Error("Execute Job Error.", exception); } return(true); }; workerSpGoc.Start(); }); workerSpGocTask.Start(); Log.InfoFormat("Worker(SpGoc) {0} started", _workerCount); #endregion } catch (Exception exception) { Log.Error("Start error", exception); throw; } }