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