我有一个用户案例,用户通过ASP.NET MVC 5 网站或 Windows Store App上传 excel 文件。该文件包含一个电子商务产品列表。该文件需要首先验证正确的格式、数据准确性等...验证完成后,需要读取日期并发送一条消息,如AddProducts,它会为所有要添加的产品生成一个事件。此应用程序使用AR+E,因此必须记录Azure 表存储中的所有事件. 非功能性要求是可能有成千上万的人将文件从网络或商店应用程序上传到他们的在线商店。请求需要一一处理,如果处理成功,将立即通过SignalR通知用户。
看了几个选项,如Azure Worker 角色、WebJobs等……WebJob 可能很合适,但它与制作 Service Fabric 微服务的 Web 角色相关。此服务/作业必须根据来自 ASP.NET MVC5 站点以及来自 Windows Store 应用程序的请求进行扩展。在使用 WebJob 时,它可以根据我理解的它所附加的网站角色进行扩展。
我是否可以使用Service Fabric 服务从单个服务端点实现所有这些 (1) 具有 POST 操作的 REST 端点,例如/product-file/uploaded (2) 另一个端点,例如/product-file/checkstatus/ myExcelFileName (3) 每 30 秒检查一次从Azure 存储队列上传的请求并启动文件的验证和处理 (4) 验证和处理文件?您可能会注意到,该服务应该具有 REST 端点、对队列的访问权限、一个利用 CPU 和 IO 操作的后台作业运行器。