从Windows Azure平台上的第三方Web服务异步提取数据

时间:2010-09-14 11:49:07

标签: azure azure-storage azure-worker-roles

我想从不同的第三方API Web服务中提取大量数据并将其存储在暂存区域(这是我现在想要决定的),然后根据需要逐个移动它进入我的应用程序的数据库。

我想知道我可以使用Azure平台来实现上述目标吗?使用Azure平台完成此任务有多好?

如果要拉取的数据量很大且拉力频率很高,例如对于2,000个不同的用户可能是半小时或每小时怎么办?

我认为如果可能的话,那么带宽,数据存储和服务器功能等对我来说都不会让我担心,但对于©Microsoft来说。显然,我应该能够在需要时访问数据。

如果我必须在Windows服务器上实现它,那么我知道我会使用Windows服务来执行此操作。但我不知道如果可能的话,如何为Windows Azure Platform做到这一点?

2 个答案:

答案 0 :(得分:1)

在Windows Azure中,通常是用于承载云处理的工作者角色。为了完成您的任务,您需要自己实现此消息传递/调度基础结构,或者使用Azure的Lokad.CloudLokad.CQRS开源项目。

我们使用Lokad.Cloud进行数十万个系列的分布式BI处理,Lokad.CQRS可以按计划可靠地检索和同步数百万个产品。

两个项目都有样本,文档和社区,可以帮助您入门。

答案 1 :(得分:1)

正如Rinat所说,你可以使用Lokad的解决方案。如果你选择自己动手,你可以在你的工作角色中运行一个定时任务 - 可能会产生一个睡眠的线程,每30分钟唤醒一次以完成它的任务。然后它可以联系到有问题的Web服务(或者每个Web服务可能有一个线程?)并获取数据。您可以将其临时存储在Azure表存储中,这只是SQL Azure成本的一小部分(每GB 0.15),然后可以轻松地从表存储中按需读取并传输到SQL Azure。

假设您托管服务,存储和SQL Azure位于同一数据中心(通过适当地设置关联),您只需在从Web服务提取数据时支付带宽。从表存储中检索或插入SQL Azure没有带宽费用。