Пример #1
0
        public void GetQueue()
        {
            QueueProcess queue  = new QueueProcess();
            Queue        queues = queue.GetQueue();

            Assert.IsTrue(queues != null);
        }
Пример #2
0
        public void SendMail()
        {
            QueueTest queueTest = new QueueTest();

            queueTest.BuildQueue();

            ILog log = new LogCounter();

            SendMailProcess sendMailProcess = new SendMailProcess(log);

            sendMailProcess.SetHostAndPort("smtp.hostname.com", 25);

            QueueProcess queueProcess = new QueueProcess();
            Queue        queue        = queueProcess.GetQueue();

            foreach (Recipient recipient in queue.RecipientData)
            {
                sendMailProcess.Send(
                    new MailAddress(queue.TicketData.SenderAddress, queue.TicketData.SenderName),
                    new MailAddress[] { new MailAddress(recipient.Address, recipient.Name) },
                    queue.TicketData.Subject,
                    queue.TicketData.Body
                    );
            }
        }
        /// <summary>
        /// Invoke the command and get the response from SQS
        /// </summary>
        /// <param name="request"> The request to perform </param>
        /// <returns> The response </returns>
        public Response Invoke(Request request)
        {
            var response     = new Response();
            var queueRequest = request as QueueRequest;

            queueRequest.Validate();

            var sqsClient = new AmazonSQSClient();

            var sqsResponse = sqsClient.SendMessageAsync(
                QueueHelper.RequestQueueUrl,
                JsonConvert.SerializeObject(queueRequest)
                ).Result;

            var qp = new QueueProcess()
            {
                QueueId = sqsResponse.MessageId
            };

            this.connection.Insert <QueueProcess>(qp);

            response.Payload = sqsResponse.MessageId;
            response.Status  = HttpCode.Accepted;

            return(response);
        }
Пример #4
0
        static void Main(string[] args)
        {
            CampaignPacketService.CreatePacket();

            QueueProcess _oQueueProcess = new QueueProcess();

            _oQueueProcess.SendMessages();
        }
Пример #5
0
        public void QueueCancellationTokenTest()
        {
            //Arrange
            var token        = new CancellationTokenSource();
            var queueProcess = new QueueProcess(0, null);

            token.Cancel();

            //Act & Assert
            CustomAssert.IsThrown <OperationCanceledException>(() => queueProcess.ProcessMethod(null, token.Token));
        }
Пример #6
0
        public void QueueCancellationTokenTest()
        {
            //Arrange
            var token = new CancellationTokenSource();
            var queueProcess = new QueueProcess(0, null);

           token.Cancel();

            //Act & Assert
            CustomAssert.IsThrown<OperationCanceledException>(() => queueProcess.ProcessMethod(null, token.Token));
        }
Пример #7
0
        public void QueueFirstStartTest()
        {
            //Arrange
            var queueProcess = new QueueProcess(0, null);

            //Act
            queueProcess.FirstStart(new CancellationToken());

            //Asert
            Assert.AreEqual(1, queueProcess.BlockingCollection.BoundedCapacity);
            Assert.AreEqual(1, queueProcess.BlockingCollection.Count);
        }
Пример #8
0
        public void QueueFirstStartTest()
        {
            //Arrange
            var queueProcess = new QueueProcess(0, null);

            //Act
            queueProcess.FirstStart(new CancellationToken());

            //Asert
            Assert.AreEqual(1, queueProcess.BlockingCollection.BoundedCapacity);
            Assert.AreEqual(1, queueProcess.BlockingCollection.Count);
        }
Пример #9
0
        public void BuildQueue()
        {
            TicketTest ticketTest = new TicketTest();

            ticketTest.MakeTicket();

            //TicketInfo.GetTickets();
            TicketProcess ticketProcess = new TicketProcess();

            QueueProcess queueProcess = new QueueProcess();

            queueProcess.BuildQueueFromTicket(ticketProcess, 100);
        }
        public void EncodeTest()
        {
            //Arrange
            var cloudStorageConfiguration = new CloudStorageConfiguration(CloudStorageAccount.DevelopmentStorageAccount, new Version());

            var queueVideoRepository = new QueueVideoRepository(cloudStorageConfiguration.StorageAccount.CreateCloudQueueClient());
            var videoRepository      = new FakeVideoRepository(_blobSource, _blobDestination);
            var screenshotRepository = new FakeScreenshotRepository(_blobDestination);
            var mediaInfoReader      = new MediaInfoReader();
            var encoder           = new Encoder();
            var fileSystemWrapper = new FileSystemWrapper();

            var queueProcess    = new QueueProcess(1000, queueVideoRepository);
            var downloadProcess = new DownloadProcess(5, videoRepository, fileSystemWrapper);
            var encoderProcess  = new EncodeProcess(5, encoder, videoRepository, mediaInfoReader, queueVideoRepository, fileSystemWrapper);
            var uploadProcess   = new UploadProcess(5, videoRepository, screenshotRepository, fileSystemWrapper);
            var finishProcess   = new FinishProcess(queueVideoRepository, videoRepository, fileSystemWrapper);

            var queueContainer    = new ProcessContainer <object, QueueInformation, DownloadInformation>(queueProcess, downloadProcess);
            var downloadContainer = new ProcessContainer <QueueInformation, DownloadInformation, EncodeInformation>(downloadProcess, encoderProcess);
            var encoderContainer  = new ProcessContainer <DownloadInformation, EncodeInformation, UploadInformation>(encoderProcess, uploadProcess);
            var uploadContainer   = new ProcessContainer <EncodeInformation, UploadInformation, object>(uploadProcess, finishProcess);

            var processManager = new EncodeProcessManager(queueVideoRepository.DeleteMessageLocal);

            processManager.Add(queueContainer);
            processManager.Add(downloadContainer);
            processManager.Add(encoderContainer);
            processManager.Add(uploadContainer);

            var timer = new Timer(UpdateMessages, queueVideoRepository, (int)queueVideoRepository.InvisibleTime.TotalMilliseconds / 2, (int)queueVideoRepository.InvisibleTime.TotalMilliseconds / 2);

            //Act & Assert
            Task task = processManager.Start();

            StartQueueWork();

            Thread.Sleep(30000);


            while (queueVideoRepository.ApproximateMessageCount > 0)
            {
                Thread.Sleep(60000);
            }

            //Thread.Sleep(50*60*1000);

            processManager.Stop();

            task.Wait();
        }
Пример #11
0
        public void EmptyQueueTest()
        {
            //Arrange
            var queueVideoRepository = new Mock <IQueueVideoRepository>();
            var queueProcess         = new QueueProcess(0, queueVideoRepository.Object);

            queueVideoRepository.Setup(m => m.GetMessage()).Returns((VideoMessage)null);

            //Act
            var queueInfo = queueProcess.ProcessMethod(null, new CancellationToken());

            //Asert
            Assert.AreEqual(null, queueInfo.VideoMessage);
        }
Пример #12
0
        public void EmptyQueueTest()
        {
            //Arrange
            var queueVideoRepository = new Mock<IQueueVideoRepository>();
            var queueProcess = new QueueProcess(0, queueVideoRepository.Object);

            queueVideoRepository.Setup(m => m.GetMessage()).Returns((VideoMessage) null);

            //Act
            var queueInfo = queueProcess.ProcessMethod(null, new CancellationToken());

            //Asert
            Assert.AreEqual(null, queueInfo.VideoMessage);
        }
        public void EncodeTest()
        {
            //Arrange
            var cloudStorageConfiguration = new CloudStorageConfiguration(CloudStorageAccount.DevelopmentStorageAccount, new Version());

            var queueVideoRepository = new QueueVideoRepository(cloudStorageConfiguration.StorageAccount.CreateCloudQueueClient());
            var videoRepository = new FakeVideoRepository(_blobSource, _blobDestination);
            var screenshotRepository = new FakeScreenshotRepository(_blobDestination);
            var mediaInfoReader = new MediaInfoReader();
            var encoder = new Encoder();
            var fileSystemWrapper = new FileSystemWrapper();

            var queueProcess = new QueueProcess(1000, queueVideoRepository);
            var downloadProcess = new DownloadProcess(5, videoRepository, fileSystemWrapper);
            var encoderProcess = new EncodeProcess(5, encoder, videoRepository, mediaInfoReader, queueVideoRepository, fileSystemWrapper);
            var uploadProcess = new UploadProcess(5, videoRepository, screenshotRepository, fileSystemWrapper);
            var finishProcess = new FinishProcess(queueVideoRepository, videoRepository, fileSystemWrapper);

            var queueContainer = new ProcessContainer<object, QueueInformation, DownloadInformation>(queueProcess, downloadProcess);
            var downloadContainer = new ProcessContainer<QueueInformation, DownloadInformation, EncodeInformation>(downloadProcess, encoderProcess);
            var encoderContainer = new ProcessContainer<DownloadInformation, EncodeInformation, UploadInformation>(encoderProcess, uploadProcess);
            var uploadContainer = new ProcessContainer<EncodeInformation, UploadInformation, object>(uploadProcess, finishProcess);

            var processManager = new EncodeProcessManager(queueVideoRepository.DeleteMessageLocal);
            processManager.Add(queueContainer);
            processManager.Add(downloadContainer);
            processManager.Add(encoderContainer);
            processManager.Add(uploadContainer);

            var timer = new Timer(UpdateMessages, queueVideoRepository, (int) queueVideoRepository.InvisibleTime.TotalMilliseconds/2, (int) queueVideoRepository.InvisibleTime.TotalMilliseconds/2);

            //Act & Assert
            Task task = processManager.Start();
            StartQueueWork();

            Thread.Sleep(30000);


            while (queueVideoRepository.ApproximateMessageCount > 0)
            {
                Thread.Sleep(60000);
            }

            //Thread.Sleep(50*60*1000);

            processManager.Stop();

            task.Wait();
        }
Пример #14
0
 protected void Application_Start()
 {
     AreaRegistration.RegisterAllAreas();
     GlobalConfiguration.Configure(WebApiConfig.Register);
     FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
     RouteConfig.RegisterRoutes(RouteTable.Routes);
     BundleConfig.RegisterBundles(BundleTable.Bundles);
     //请求异常拦截处理
     GlobalConfiguration.Configuration.Filters.Add(new ApiExceptionFilterAttribute());
     //开启独立线程对日志进行处理,解决日志在并发情况下的线程安全问题
     QueueProcess.LogInfoQueueProcess();
     Mapper.Initialize(cfg => {
         cfg.CreateMap <Dal.PatientsData, CurrentInfoListDto>();
         cfg.CreateMap <Drugs, Dal.PatientsDrug>();
     });
 }
Пример #15
0
        public void QueuedSuccessfulTest()
        {
            //Arrange
            var queueMsg = new VideoMessage();
            var queueVideoRepository = new Mock<IQueueVideoRepository>();
            var queueProcess = new QueueProcess(1000, queueVideoRepository.Object);

            queueVideoRepository.Setup(m => m.GetMessage()).Returns(queueMsg);

            //Act
            var queueInfo = queueProcess.ProcessMethod(null, new CancellationToken());

            //Asert
            queueVideoRepository.Verify(m => m.GetMessage(), Times.Once());

            Assert.AreEqual(1, queueProcess.BlockingCollection.Count);
            Assert.AreEqual(queueMsg, queueInfo.VideoMessage);
        }
Пример #16
0
        public void QueuedSuccessfulTest()
        {
            //Arrange
            var queueMsg             = new VideoMessage();
            var queueVideoRepository = new Mock <IQueueVideoRepository>();
            var queueProcess         = new QueueProcess(1000, queueVideoRepository.Object);

            queueVideoRepository.Setup(m => m.GetMessage()).Returns(queueMsg);

            //Act
            var queueInfo = queueProcess.ProcessMethod(null, new CancellationToken());

            //Asert
            queueVideoRepository.Verify(m => m.GetMessage(), Times.Once());

            Assert.AreEqual(1, queueProcess.BlockingCollection.Count);
            Assert.AreEqual(queueMsg, queueInfo.VideoMessage);
        }
Пример #17
0
        public void Process()
        {
            if (processing)
            {
                return;
            }
            lock (lockObj)
            {
                processing = true;
            }

            TicketProcess ticketProcess = new TicketProcess();
            QueueProcess  queueProcess  = new QueueProcess();

            queueProcess.BuildQueueFromTicket(
                ticketProcess,
                Convert.ToInt32(ConfigurationManager.AppSettings["BlockCount"])
                );

            processing = false;
        }
Пример #18
0
        public void Process()
        {
            if (processing || this.smtpServer == null)
            {
                return;
            }
            lock (lockObj)
            {
                processing = true;
            }

            QueueProcess queueProcess = new QueueProcess();

            int blockSleep = Convert.ToInt32(ConfigurationManager.AppSettings["BlockSleep"]);

            ClickOnceDMLib.Structs.Queue queue = queueProcess.GetQueue();

            if (queue != null)
            {
                InitSMTPServer();

                LogProcess.Info("In-Process Start");

                ILog log = new LogCounter(); // log interface

                foreach (Recipient recipient in queue.RecipientData)
                {
                    long baseTick = DateTime.Now.Ticks;

                    var smtp = from s1 in this.smtpServer
                               orderby s1.Weight ascending
                               select s1;

                    SMTPServer serverInfo = smtp.First();

                    SendMailProcess sendMailProcess = new SendMailProcess(log);

                    sendMailProcess.SetHostAndPort(serverInfo.Host, serverInfo.Port);

                    MailAddress mailAddress = null;

                    try
                    {
                        mailAddress = new MailAddress(recipient.Address.Trim(), recipient.Name);
                    }
                    catch (Exception ex)
                    {
                        LogProcess.Error(ex);
                        continue;
                    }

                    if (mailAddress != null)
                    {
                        sendMailProcess.Send(
                            new MailAddress(queue.TicketData.SenderAddress, queue.TicketData.SenderName),
                            new MailAddress[] { mailAddress },
                            queue.TicketData.Subject,
                            queue.TicketData.Body
                            );

                        serverInfo.SetWeight(TimeSpan.FromTicks(DateTime.Now.Ticks - baseTick).Milliseconds);
                    }
                }

                log.Flush(); // write log

                LogProcess.Info("In-Process End");

                Thread.Sleep(blockSleep);
            }

            processing = false;
        }
Пример #19
0
 public AccountStaffConsumer()
 {
     accountStaffEmpHandler = new QueueProcess <AccountStaffEmpHandler>("TmsStaffForAppConnect");
 }