Dynamics CRM Web API 批量

Dynamics CRM Web API Bulk

全部,

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

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

您是对的,批处理对您没有多大帮助,因为您的所有请求仍将按顺序处理。对于该数据量,您需要实施 concurrency/parallelism/multi-threading。我项目中的集成人员平均每秒可以使用 producer/consumer 模式实现大约 100 次操作。他使用自动增长的 CRM 连接池,一旦一个请求处理完毕,连接就会返回到池中。

Microsoft Premier Field Engineering 团队发布了 PFE Core Library for Dynamics CRM on CodePlex. The library has a ParallelOrganizationServiceProxy class 应该可以为您完成很多复杂的并发工作。这是一个例子:

public void ParallelUpdate(List<Entity> targets)
{
    try
    {
        this.Manager.ParallelProxy.Update(targets);
    }
    catch (AggregateException ae)
    {
        // Handle exceptions
    }
}