我的方案是我有一个插件需要运行一大堆 AddMembersTeamRequest 和 RemoveMembersTeamRequest (每个大约2000个)
我遇到以下代码时出现问题:
var executeMultipleRequest = new ExecuteMultipleRequest();
executeMultipleRequest.Settings = new ExecuteMultipleSettings() { ContinueOnError = false, ReturnResponses = false };
var organizationRequestCollection = new OrganizationRequestCollection();
foreach (var sharedRecordsOwningTeam in sharedRecordsOwningTeams)
{
organizationRequestCollection.Add(CreateAddMembersTeamRequest(userId, sharedRecordsOwningTeam.Id));
}
executeMultipleRequest.Requests = organizationRequestCollection;
service.Execute(executeMultipleRequest);
然而,有多少请求属于 ExecuteMultipleRequest 并不重要,因为它似乎冻结了这个过程(我尝试过只有一个请求 ExecuteMultipleRequest 集合)
但是下面的代码似乎工作正常:
foreach (var sharedRecordsOwningTeam in sharedRecordsOwningTeams)
{
service.Execute(CreateAddMembersTeamRequest(userId, sharedRecordsOwningTeam.Id));
}
正如您所看到的,上面代码的问题在于它导致进程执行大约2000多个请求。
有人知道为什么使用 ExecuteMultipleRequest 完全冻结了这个过程吗? (即使在请求集合中只有1个添加/删除团队成员请求)
答案 0 :(得分:0)
我想我已经明白了。
我认为这对我来说很冷淡,因为我试图从当前业务部门的默认团队中删除用户。
由于某种原因,请求不是错误的,而是只是坐在那里。
但我想我还应该指出,使用 ExecuteMultipleRequest 并不比运行多个 AddMembersTeamRequest更快。
即使是巨大的 AssociateRequest 也不会更快。