本文整理汇总了C#中QueueManager.WaitForAllMessagesToBeSent方法的典型用法代码示例。如果您正苦于以下问题:C# QueueManager.WaitForAllMessagesToBeSent方法的具体用法?C# QueueManager.WaitForAllMessagesToBeSent怎么用?C# QueueManager.WaitForAllMessagesToBeSent使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QueueManager
的用法示例。
在下文中一共展示了QueueManager.WaitForAllMessagesToBeSent方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CanPurgeLargeSetsOfOldData
public void CanPurgeLargeSetsOfOldData()
{
queueManager = ObjectMother.QueueManager();
queueManager.Configuration.OldestMessageInOutgoingHistory = TimeSpan.Zero;
queueManager.Start();
// Seed the queue with historical messages to be purged
QueueMessagesThreaded(1000);
//Parallel.For(0, 1000, new ParallelOptions { MaxDegreeOfParallelism = 8 }, i => SendMessages());
queueManager.WaitForAllMessagesToBeSent();
// Try to purge while still sending new messages.
var waitHandle = new ManualResetEvent(false);
ThreadPool.QueueUserWorkItem(_ =>
{
queueManager.PurgeOldData();
Console.WriteLine("Finished purging data");
waitHandle.Set();
});
QueueMessagesThreaded(10000);
//var purgeTask = Task.Factory.StartNew(() =>
//{
// queueManager.PurgeOldData();
// Console.WriteLine("Finished purging data");
//});
//Parallel.For(0, 10000, new ParallelOptions { MaxDegreeOfParallelism = 8 }, i => SendMessages());
waitHandle.WaitOne();
//purgeTask.Wait();
queueManager.WaitForAllMessagesToBeSent();
queueManager.PurgeOldData();
queueManager.Configuration.NumberOfMessagesToKeepInOutgoingHistory.ShouldEqual(
queueManager.GetAllSentMessages().Length);
}
示例2: Sender
public void Sender(int count)
{
using (var sender = new QueueManager("localhost", "sender.esent"))
{
sender.Start();
using (var tx = new TransactionScope())
{
sender.Send(new Uri("file://localhost/uno"), new MessagePayload
{
Data = Encoding.ASCII.GetBytes("Message " + count)
});
tx.Complete();
}
sender.WaitForAllMessagesToBeSent();
}
}
示例3: SetupReceivedMessages
public void SetupReceivedMessages()
{
var logger = new RecordingLogger();
sender = ObjectMother.QueueManager(logger:logger);
sender.Start();
using (var tx = new TransactionScope())
{
sender.Send(
new Uri("lq.tcp://localhost:23457/h"),
new MessagePayload
{
Data = new byte[] { 6, 7, 8, 9 }
});
tx.Complete();
}
receiver = ObjectMother.QueueManager("test2", 23457);
receiver.CreateQueues("a");
receiver.Start();
sender.WaitForAllMessagesToBeSent();
sender.Dispose();
receiver.Dispose();
sender = ObjectMother.QueueManager(delete: false);
receiver = ObjectMother.QueueManager("test2", 23457, delete:false);
receiver.CreateQueues("a");
}
示例4: Sender
public void Sender(int count)
{
using (var sender = new QueueManager(new IPEndPoint(IPAddress.Loopback, 4546), "sender.esent"))
{
using (var tx = new TransactionScope())
{
sender.Send(new Uri("rhino.queues://localhost:4545/uno"),
new MessagePayload
{
Data = Encoding.ASCII.GetBytes("Message "+count)
}
);
tx.Complete();
}
sender.WaitForAllMessagesToBeSent();
}
}