public void GetQueue() { QueueProcess queue = new QueueProcess(); Queue queues = queue.GetQueue(); Assert.IsTrue(queues != null); }
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); }
static void Main(string[] args) { CampaignPacketService.CreatePacket(); QueueProcess _oQueueProcess = new QueueProcess(); _oQueueProcess.SendMessages(); }
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)); }
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)); }
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); }
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(); }
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 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(); }
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>(); }); }
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); }
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); }
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; }
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; }
public AccountStaffConsumer() { accountStaffEmpHandler = new QueueProcess <AccountStaffEmpHandler>("TmsStaffForAppConnect"); }