private static void TestEnqueueDataWithVisibilityTimeout()
{
var queueName = "test-azure-queue";
var queue = new Azure.Storage.Queues.QueueClient(ConnectionString, queueName);
queue.CreateIfNotExists();
//寫入十筆資料,並且延遲五秒後再出現
for (var i = 1; i <= 10; i++)
{
var res = queue.SendMessage("延遲執行 " + i + "," + DateTime.Now.ToString(), visibilityTimeout: new TimeSpan(0, 0, 5));
}
//之後執行連續寫入馬上出現的,沒有設定延遲出現
for (var i = 1; i <= 200; i++)
{
var res = queue.SendMessage("馬上執行 " + i + "," + DateTime.Now.ToString()).Value;
System.Threading.Thread.Sleep(1000);
}
}
2.讀取資料
private static void TestDequeueData()
{
var queueName = "test-azure-queue";
for (var i = 1; i <= 300; i++)
{
var queue = new Azure.Storage.Queues.QueueClient(ConnectionString, queueName);
var res = queue.ReceiveMessage().Value;
if (res != null)
{
Console.WriteLine("查詢=>" + res.Body.ToString());
}
else
{
Console.WriteLine("NO DATA!!");
}
System.Threading.Thread.Sleep(millisecondsTimeout: 1000);
}
}
3.呼叫
new Thread(() =>
{
TestDequeueData();
}).Start();
new Thread(() =>
{
TestEnqueueDataWithVisibilityTimeout();
}).Start();