【发布时间】:2015-10-09 21:29:34
【问题描述】:
为了处理每 8 小时运行一次的清理作业,目前我们已实现为:
- 使用 Azure 调度程序创建调度作业,该调度程序在消息被触发时将其放入存储队列。
-
以这样的方式实现客户端,它会在收到消息时连续轮询并处理。客户端的示例实现是:
while (!CancellationToken.Value.IsCancellationRequested) { var message = await client.GetMessageAsync(); if (message != null) { // process the message } }
但问题是我们正在无限期地等待,即使我们知道我们只会在 8 小时后收到消息,而且根据文档,每次尝试从队列中读取消息都会产生成本。
如何优化这一点,以便在每个可配置的时间而不是连续循环中动态生成侦听器?
【问题讨论】:
-
为什么没有安排好的工作来进行清理工作?见scheduled web jobs。
标签: azure azure-storage azure-storage-queues azure-scheduler