【发布时间】:2013-04-04 00:54:46
【问题描述】:
我运行的是 Windows Azure 云服务。我需要一个在我的云服务应用程序域中不断运行的后台任务,因此不能选择外部工作者角色。这是因为我需要通知 JavaScript 客户端某些事件,而我只能在我的 AppDomain 中执行此操作。我需要确保此任务始终运行,否则我的服务将无法正常运行。
到目前为止,我的想法是在应用程序启动时创建一个线程并让它永远运行,但我不知道这是否更好。
有什么建议吗?
编辑
我不能使用 Worker Roles 的原因是我需要与云服务在同一个应用程序域中,这样我才能通过SignalR 连接通知客户端。
【问题讨论】:
-
一个工作者角色持续运行,为什么这不是一个选项?
-
您是否考虑过 Azure 通知中心? msdn.microsoft.com/en-us/library/windowsazure/jj927170.aspx
-
@PeterRitchie,感谢您的回复。我用更多细节更新了这个问题。至于 Azure 通知中心,我使用的是 SignalR,这是一个标准解决方案,似乎最适合通知 JavaScript 客户端。
-
我认为您应该像使用任何其他 Windows Server 应用程序一样运行后台任务,因为 Web 角色(或工作角色)实例只是一个 Windows Server 2012 VM,其中包含一些脚手架代码。线程工作正常,如果某些事情导致线程死亡,你只需要有一些重生机制。
-
似乎是一个不寻常的要求。您需要通知客户的事件是如何执行的?为什么你不能从这些事件中通知?
标签: .net asp.net-mvc-3 azure signalr