private void Receive() { while (Connected) { try { int length = BitConverter.ToUInt16(ReadStream(2), 0); byte[] data = ReadStream(length); if (data != null && data.Length > 0) { if (data[0] == (byte)SToCMessage.Chat) { InstantQueue.Add(data); } else { DelayedQueue.Add(data); } } else { Connected = false; break; } } catch (Exception) { Connected = false; break; } } }
public MessageSender(CompositionContainer container, DelayedQueue <SendableMail> queue) { _askStop = new ManualResetEvent(false); _informStopped = new ManualResetEvent(false); _processor = new MessageProcessor(container); _mailQueue = queue; _processor.OnMailError += HandleMailError; }
public void Test_Delayed_Queue() { var time = TimeSpan.FromSeconds(5); var q = new DelayedQueue <int>(); q.AddAsync(10, time); Assert.AreEqual(q.QueueSize, 0); Thread.Sleep(5); Assert.AreEqual(q.QueueSize, 1); }
public void PutWithDelay() { // This test cannot run without the scheduler, so we have to check the // output container directly (thus this is not a black-box test) var blobStorage = GlobalSetup.Container.Resolve<IBlobStorageProvider>(); var delayer = new DelayedQueue(blobStorage); var trigger = DateTimeOffset.UtcNow.AddMinutes(5); delayer.PutWithDelay(21, trigger, _testQueueName); var prefix = new DelayedMessageName(trigger, Guid.Empty); var blobReferences = blobStorage.ListBlobNames(prefix); Assert.AreEqual(1, blobReferences.Count(), "Wrong blob count"); }
public TimeTableGenerator(ITimeTable timeTable, DelayedQueue <SendableMail> queue, CompositionContainer container) { if (timeTable == null) { throw new ArgumentNullException("timeTable"); } if (queue == null) { throw new ArgumentNullException("queue"); } if (container == null) { throw new ArgumentNullException("container"); } _timeTable = timeTable; _queue = queue; _timeTableType = container.GetExport <ITimeTableType>(timeTable.Type).Value; _timeTableType.Parameters = _timeTable.Parameters; _timeTableType.Initialize(); container.SatisfyImportsOnce(this); }