我的坏人——我根本无法想象 Windows Azure 会这么慢......所以通过将 HttpWebRequest 从 2 分钟增加到 30 分钟,我能够实现与我们的开发环境相同的数据量。
所以 - 我不会删除这个问题 - 但让这个作为你即将到来的 Azure 家伙的参考。
我很肯定 Azure(和其他云提供商)是未来,但从丹麦到“北欧”,延迟很高——而且 SQL Azure 尚未证明它可以在谈论 OLTP 和规范化数据库时执行。
开发(虚拟环境)来自 299 MB 文件的 190.335 条记录在单个实例上耗时379秒
WINDOWS AZURE(北欧) 299 MB 文件中的 190.335 条记录在两个 LARGE 实例上耗时1.400秒
好消息是,WCF 和 ThreadPool 工作完美无缺,不需要特殊考虑(除了高超时)。
澄清一下,这个 299MB 的文件被拆分为对服务器的多个 REST 调用,格式与此类似:
<?xml version="1.0" encoding="UTF-8"?>
<HttpPost absolutePath="A/B/C/D/E/OO">
<Parameters xmlns="http://somenamespace">
<A>Package</A>
<B>100</B>
<C>Generic</C>
<D>ReceiverParty</D>
<E>
<F xmlns="http://somenamespace">
<G xmlns="http://somenamespace/Product">Long Text</G>
<H xmlns="http://somenamespace/Product">1</H>
<I xmlns="http://somenamespace/Product">PK</I>
<J xmlns="http://somenamespace/Product">5995</J>
<K xmlns="http://somenamespace/Product">
<L xmlns="http://somenamespace/P/Q">Discount</L>
<M xmlns="http://somenamespace/P/Q">1000</M>
<N xmlns="http://somenamespace/P/Q">6995</N>
</K>
</F>
</E>
<OO>
<O>
<A>Product</A>
<B>100</B>
<C>Generic</C>
<D>ReceiverParty</D>
<E>
<F xmlns="http://somenamespace">
<G xmlns="http://somenamespace/Product">Long Text</G>
<H xmlns="http://somenamespace/Product">1</H>
<I xmlns="http://somenamespace/Product">PK</I>
<J xmlns="http://somenamespace/Product">5995</J>
<K xmlns="http://somenamespace/Product">
<L xmlns="http://somenamespace/P/Q">Discount</L>
<M xmlns="http://somenamespace/P/Q">1000</M>
<N xmlns="http://somenamespace/P/Q">6995</N>
</K>
</F>
</E>
</O>
</OO>
</Parameters>
</HttpPost>