예제 #1
0
 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);
     }
 }
예제 #2
0
        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;
            }
        }
예제 #3
0
 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;
     }
 }
예제 #4
0
        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;
            }
        }
예제 #5
0
 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;
     }
 }