我们有一个 Azure Web 角色,它需要监视服务总线队列以获取对早期请求的响应(然后将通过 SignalR 将其传输到客户端)。
起初我们想在 WebRole.OnStart() 中使用消息泵 (QueueClient.OnMessage)。然而,我们已经成长为非常喜欢 WebJobs SDK,尤其是它如何让程序员摆脱一些较低级别的实现和仪表板。
由于各种原因,我们希望保留 Web 角色而不是切换到网站。那么问题来了:如何在 Azure Web Role 中使用 WebJobs SDK?在一个小实验中,我们在 WebRole.cs 中修改了 Web Role 的 OnStart(),如下:
public class WebRole : RoleEntryPoint
{
public override bool OnStart()
{
JobHostConfiguration config = new JobHostConfiguration()
{
ServiceBusConnectionString = "...",
StorageConnectionString = "...",
DashboardConnectionString = "..."
};
JobHost host = new JobHost(config);
host.RunAndBlock();
return base.OnStart();
}
public static void ProcessQueueMessage([ServiceBusTrigger("MyQueue")] string inputText)
{
Trace.WriteLine(inputText);
}
}
这似乎工作正常,但我们很难评估它对 Web 角色的影响。会不会有后果?也许是在扩展 Web 角色?
谢谢。