使用控制台应用程序 webjob 轮询消息的存储队列

Polling storage queue for messages using console app webjob

我想使用 .NET Core 创建一个控制台应用程序作为 WebJob,但 WebJobs SDK 在 .NET Core 中尚不可用。

有人建议我手动处理从 Azure 存储队列读取消息的场景。看起来 WebJobs SDK 所做的就是继续轮询队列。

下面的代码是做这件事的基本思路吗?它看起来不是很复杂,但不确定如何才能更复杂。

static void Main(string[] args)
{
   var runContinuously = true;
   while (runContinuously)
   {
      ReadAndProcessMessage();
      System.Threading.Thread.Sleep(1000);
   };
}

private static void ReadAndProcessMessage()
{
   // Read message
   ReadMessage();

   // Process message and handle the work
   HandleWork();
}

那行得通。我喜欢简单。

QueueTriggerAttribute 使用随机指数退避算法来帮助最大限度地降低交易成本。如果您想追溯其实现方式的逻辑,从 QueueListener class 开始是一个不错的方法。克隆项目,然后跳转到 RandomizedExponentialBackoffStrategy class。