【发布时间】:2012-07-27 08:04:08
【问题描述】:
在 Windows Azure Worker 角色中处理“紧急”消息的最佳方式是什么?
我有一个工人角色开始,执行无限的 while(true) 循环,并在这个循环中:
- 读取队列是否有消息
- 处理它们并删除它们
- 如果没有更多消息进入睡眠状态,首先使用 Thread.Sleep(interval) 进行较小的间隔 (10 秒),然后逐渐将睡眠间隔增加到 2 分钟
- 如果队列中出现一条消息,它会将睡眠间隔重置为 0 并返回到第一步
问题是,如果工作人员正在睡眠 2 分钟并且队列中出现一条消息,我想唤醒工作人员而不是等待剩余时间。
有没有办法获取worker角色的实例并告诉它唤醒? 我想在数据库中写一些东西,但后来我遇到了同样的问题,即使我有一个这样做的角色,我该如何唤醒另一个已经在睡觉的工作角色?
【问题讨论】: