C# Dynamics CRM Web API批量

C# Dynamics CRM Web API批量,c#,bulk,dynamics-crm-2016,C#,Bulk,Dynamics Crm 2016,全部, 我有一个C#程序,可以将数据发送到CRM系统(通过HTTP Post请求使用Web API)。然而,我每天必须执行的请求数量大约为10000个,正如预期的那样,这需要花费大量时间才能完成。我一直在研究一种“批量”功能,可以一次发送大量数据(比如说,一次发送10000个任务对象)。出于这样或那样的原因,我找不到这样的功能被实现,但我得到的最接近的结果是,通过示例,它看起来像是一个http post请求中包含的多个请求,我不太确定在一个这样的包中生成10000个post请求是否是最好的解决方

全部,

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


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

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

Microsoft Premier现场工程团队在CodePlex上发布了。该库有一个类,它应该为您完成许多复杂的并发工作。下面是一个例子:

public更新(列出目标)
{
尝试
{
this.Manager.ParallelProxy.Update(目标);
}
捕获(聚合异常ae)
{
//处理异常
}
}

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

Microsoft Premier现场工程团队在CodePlex上发布了。该库有一个类,它应该为您完成许多复杂的并发工作。下面是一个例子:

public更新(列出目标)
{
尝试
{
this.Manager.ParallelProxy.Update(目标);
}
捕获(聚合异常ae)
{
//处理异常
}
}

Hi Polsh,谢谢你的回复!隐马尔可夫模型。。有人会期望微软发布RESTAPI的批量功能,你不同意吗?到目前为止,我一直在努力避免使用“旧”或“第三方”库,但我想如果没有它们,任务是可行的,尽管如此,因为多线程可能是最好的选择。。。那么这个怎么样,你熟悉吗?ExecuteMultiple相当于WebAPI中的批处理。它还有另一个主要缺点:该平台在任何给定时间只处理两个ExecuteMultiple请求:/顺便问一下,批处理请求不是一次发送所有请求,然后在crm端执行单独的请求,从而减少了单独连接的延迟吗?否则我就看不出来了?明白了。它在网络是最大瓶颈的高延迟环境中最有帮助。我明白了,谢谢!:)所以只要把显而易见的事情写下来。。批处理请求将加快处理速度,只是它不会与批量功能同时进行?嗨,波尔什,谢谢你的回复!隐马尔可夫模型。。有人会期望微软发布RESTAPI的批量功能,你不同意吗?到目前为止,我一直在努力避免使用“旧”或“第三方”库,但我想如果没有它们,任务是可行的,尽管如此,因为多线程可能是最好的选择。。。那么这个怎么样,你熟悉吗?ExecuteMultiple相当于WebAPI中的批处理。它还有另一个主要缺点:该平台在任何给定时间只处理两个ExecuteMultiple请求:/顺便问一下,批处理请求不是一次发送所有请求,然后在crm端执行单独的请求,从而减少了单独连接的延迟吗?否则我就看不出来了?明白了。它在网络是最大瓶颈的高延迟环境中最有帮助。我明白了,谢谢!:)所以只要把显而易见的事情写下来。。批处理请求将加快处理速度,但它不会像批量功能那样同时进行?