1

全部,

我有一个能够将数据发送到 CRM 系统的 C# 程序(通过 HTTP Post 请求使用 Web API)。但是,我每天必须执行的请求数量约为 10000 个,这正如预期的那样需要大量时间才能完成。我一直在研究一种“批量”功能,我可以一次发送大量数据(比如一次发送 10000 个任务对象)。出于某种原因,我找不到这样的功能正在实现,我得到的最接近的是“批处理请求”,尽管通过示例,它看起来像多个请求包装在一个 http post 请求中,我不太肯定是生成 10000 个帖子请求的最佳解决方案,除非这是唯一的方法

那么,是否有批量功能或者批量请求是我必须处理的最好的?

4

1 回答 1

0

您是对的,批处理对您没有多大帮助,因为您的所有请求仍将按顺序处理。对于这么大的数据量,你需要实现并发/并行/多线程。我项目中的集成人员使用本质上是生产者/消费者模式的方式,平均每秒能够实现大约 100 次操作。他使用自动增长的 CRM 连接池,一旦完成处理一个请求,连接就会返回到池中。

Microsoft Premier Field Engineering 团队在 CodePlex 上发布了适用于 Dynamics CRM 的 PFE 核心库。该库有一个ParallelOrganizationServiceProxy类,它应该为您完成许多复杂的并发工作。这是一个例子:

public void ParallelUpdate(List<Entity> targets)
{
    try
    {
        this.Manager.ParallelProxy.Update(targets);
    }
    catch (AggregateException ae)
    {
        // Handle exceptions
    }
}
于 2016-04-19T17:49:19.063 回答