Nat*_*ate 1 azure azure-storage azure-worker-roles
我有一个监视队列的辅助角色.尽管我希望它被抨击,但大多数时候队列都是空的.我每隔几分钟就会在队列中得到一个新项目.
我有:
public override void Run()
{
while (true)
{
//Check the queue for new messages
//if there's a new message, do some stuff
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果队列中没有项目,我是否需要执行Thread.Sleep(x)?或者我可以一遍又一遍地检查它?如果我确实需要睡觉,我应该睡多久?(毫秒/秒?)
我主要担心的是Azure费用.
一种帮助最小化交易费用的好方法(我认为您主要关注的是)将采用退避轮询方法.意思是,每次没有找到队列消息时,慢慢增加睡眠时间.这样做直到睡眠时间达到某个最大值.找到消息后,开始更快地轮询消息.
另一种帮助方法是一次从队列中获取多条消息(而不是一次获取一条消息).这也将有助于交易费用.
| 归档时间: |
|
| 查看次数: |
739 次 |
| 最近记录: |