【发布时间】:2017-11-01 12:53:46
【问题描述】:
我已经拥有的:
- .NET 框架项目上的一个 asp.net 核心,使用 DocumentDB 作为其存储
- 一个 Azure WebJob,它侦听我的 Web 项目将消息写入其中以进行电子邮件发送和其他处理的队列
- 在 Azure 上成功部署和运行
这一切都很好。除了 Web 项目之外,还有一个模型和数据类库将应用程序分成多个层。
目前,Web 应用程序调用 Web 服务,并将结果(一个非常大的 xml 文档)保存在缓存中,并在缓存中保存 24 小时。这并不理想,因为第一次需要很长时间。我想要的是一个夜间批处理作业,它调用此 Web 服务,然后将响应存储(覆盖)到持久存储中,然后 Web 应用程序将使用该持久存储。
我对为此使用哪个 Azure“服务”感到困惑。到目前为止,我开始的是另一个 WebJob,其想法是使用相同的 DocumentDb 存储来保持每晚的 Web 服务响应。但是,我已经在 Web 应用程序(数据类库)中设置了所有数据库存储库等,是否可以只从 WebJob 中引用该项目而不必在 WebJob 中重写一些相同的代码?
为此 WebJob 使用其他一些 Azure 存储选项是否更好?像表存储,Blob 存储等?基本上,从 Web 服务接收到的数据的结构非常简单。对于每个项目,我只需要存储一个 url、一个标题、描述和唯一的产品 ID。显然,Web 应用程序也需要通过简单地查找产品 ID 来访问这个存储空间,并且永远不会写入这个存储空间。
此外,我不完全确定是否有比 Azure WebJobs 更好的替代方法来完成这项任务,但这似乎是正确的方法。
感谢任何反馈。我通常只是对 Azure 提供的所有不同服务感到困惑/不知所措。
【问题讨论】:
标签: web-services azure architecture azure-storage azure-cosmosdb