我同时设置了 ASP.NET 应用程序和 Worker Role,现在我想知道如何在它们之间进行通信?我认为这个想法是解决方案将分布在不同的地理位置。那么如何以简单高效的方式链接分布式 Worker 和 Web Roles 呢?我已经开始研究 WCF,但在我看来它是一种矫枉过正和过于复杂的事情。我的另一个想法是在 Worker 角色中使用 SignalR 客户端与 Web 角色中的服务器通信。
编辑:
确切的上下文:
1)用户上传文件到服务器
2)服务器将文件发送到Azure Storage,并将文件名添加到CloudQueue
3)Worker从CloudQueue中获取文件名
4)Worker 启动一个新线程,从 Azure Storage 获取文件并开始处理它
5)Worker/Thread在文件处理的每一步都向应用程序报告
6)应用程序接收报告并使用SignalR将处理步骤实时转发到客户端的浏览器。
我缺少的是步骤 2 > 3,如何立即通知工人有新文件到达?我不想轮询 CloudQueue,因为它会造成延迟。同样在步骤 5 > 6 中,Worker 需要通知应用程序有关这些步骤的信息,这应该不会延迟,但我再次看不到在这种情况下如何使用轮询解决方案。