Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Web services 哪个Azure服务用于调用Web服务并持久化响应的批处理作业_Web Services_Azure_Architecture_Azure Storage_Azure Cosmosdb - Fatal编程技术网

Web services 哪个Azure服务用于调用Web服务并持久化响应的批处理作业

Web services 哪个Azure服务用于调用Web服务并持久化响应的批处理作业,web-services,azure,architecture,azure-storage,azure-cosmosdb,Web Services,Azure,Architecture,Azure Storage,Azure Cosmosdb,我已经拥有的: 使用DocumentDB作为其存储的asp.net core on.net framework项目 Azure WebJob,用于侦听web项目将消息写入的队列,以进行电子邮件发送和其他处理 已在Azure上成功部署并运行 这一切都很好。除了web项目之外,还有一个模型和数据类库,用于将应用程序划分为多个层 目前,web应用程序调用一个web服务,并将结果(一个相当大的xml文档)保存在缓存中,并将其保存24小时。这并不理想,因为第一次需要很长时间。我想要的是一个夜间批处理作

我已经拥有的:

  • 使用DocumentDB作为其存储的asp.net core on.net framework项目
  • 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提供的所有不同服务弄糊涂了。

我将回答您的一些问题

webjob可以很好地完成此任务。如果你有一个Web服务总是在添加另一个webjob似乎是个好主意。如果您的Web服务不总是打开,您可以查看Azure功能。Azure函数有时称为webjobs 2.0

对于文档数据库中的存储,有2MB的文件大小限制(给定或获取)。所以,你必须在那里找到另一个解决方案。我认为Azure表在存储大小上也有限制,因此您必须将文件拆分为更小的块。所以,推荐的解决方案是使用Azure Blob

您将在这个答案中找到一些关于blob、Tables和SQL的好读物
-

谢谢。我不能将每个产品都保存为文档,以绕过存储限制吗?这会有什么后果?基本上,当用户访问站点时,应用程序需要检索一次产品信息,具体取决于用户选择的产品id。我重新阅读了您的问题。当然,您可以这样做,也可以使用Azure表作为键/值存储。如果您已经有了Document DB连接并且正在为此付费,请继续使用它。做一些简单而有价值的东西。如果它适合你的需要,就坚持下去,否则就改变……非常感谢,并为这个显然非常宽泛的问题道歉。我真的不知道如何在不删除我的设置信息的情况下使它更具体!