AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Разработка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.08.2016, 20:03   #1  
Буденый is offline
Буденый
Участник
 
70 / 15 (1) ++
Регистрация: 07.06.2010
Адрес: Донецк
? Паралелльная обработка данных в плагине
Добрый день.
Подскажите, каким образом можно создать из Action несколько подключений к CRM 2015?
Суть задачи - есть плагин, который обрабатывает большую коллекцию данных. Необходимо распаралелить обработку коллекции, используя Parallel.ForEach. Из консольного приложения все отлично работает, при этом, из файла конфигурации на каждый поток создается отдельное подключение к CRM.

В плагине получаю подключение к СРМ из контекста:

Код:
  IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));

  IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider
                                                                           .GetService(typeof(IOrganizationServiceFactory));

  IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);
если несколько раз вызывать
Код:
IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);
будет создаваться отдельное подключение или будет использоваться одно и то же?
Если будет создаваться одно и то же подключение, то как можно создать несколько подключений к CRM из сборки плагина?
Старый 13.08.2016, 21:26   #2  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
По поводу того будет ли создаваться новое подключение или там реализован синглтон - без понятия и для того, чтобы найти ответ вам прийдётся рефлектором лезть в сборки CRM и разбираться в них.

Но в целом, я бы рекомендовал (и сам бы так делал) такие операции выносить из контекста CRM по возможности.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 15.08.2016, 15:51   #3  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Я думаю, проще проверить экспериментально. Но я согласен с предыдущим оратором: выполнение такой задачи лучше выносить из плагинов в какие-то сервисы. Работа с данными внутри плагина имеет свою специфику: вызов метода Execute одного инстанса вашего плагина может происходить в параллельных потоках, а класс реализующий IOrganizationService ведет свою родословную совсем от других родителей нежели OrganizationServiceContext. Скорее всего, многопоточные вызовы сделать не выйдет.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Теги
crm parallel foreach

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Обработка почты в плагине Дмитрий А.А. Dynamics CRM: Разработка 1 09.03.2016 14:06
Активация шифрования данных ZFCoder Dynamics CRM: Функционал 5 25.06.2015 14:47
Получение имени базы данных SQL в плагине ZooY Dynamics CRM: Разработка 7 13.11.2012 12:33
nav4u: Извлечение данных Dynamics NAV через прямое подключение к SQL Server Blog bot Dynamics CRM: Blogs 0 04.12.2011 07:37
alexef: Пример использования тулы ‘Переноса данных’ в Navision 5.0 Blog bot Dynamics CRM: Blogs 2 02.10.2008 19:16

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 23:59.