|
![]() |
#1 |
Участник
|
При регистрации плагина выбираете Execution mode - Synchronous (Синхронный режим выполнения) - дубликатов быть не должно.
Цитата:
Synchronous and asynchronous execution of plug-ins. Synchronous plug-ins are executed in a pre-defined order as part of the main Microsoft Dynamics CRM event processing. Asynchronous plug-ins are queued and executed independently.
|
|
![]() |
#2 |
Участник
|
Цитата:
Гипотетическая ситуация: сущность Account, на Pre-Create зарегистрировано два плагина - PlugIn1 и PlugIn2 (плагины разные, зарегистрированы синхронно). Два человека на двух разных компах инициировали событие Pre-Create сущности Account. По вашему получается, что пока не выполняться PlugIn1 и PlugIn2 для одного пользователя, эти плагины не начнут выполняться для другого пользователя (или может быть пока не выполниться PlugIn1 для одного пользователя он не начнет выполняться для другого). Но такая последовательность выполнения плагинов должна жутко тормозить систему. Получается что пользователи выстраиваются в очередь на обработку плагинов. Не правильнее ли думать, что синхронность будет заключаться в том, что у одного пользователя оба плагина будут выполняться синхронно, тоесть пока не отработает PlugIn1, не запуститься PlugIn2 (а не так, что плагины отработают когда то потом и в какой последовательности фик знает). При этом у второго пользователя эти плагины работают так же но в параллельном потоке. Таким образом пользователи не мешают друг-другу. Но тогда как раз и может возникнуть ситуация, что в двух параллельных потоках одновременно идет доступ к одним и тем же данным. |
|
![]() |
#3 |
Участник
|
Цитата:
А то что это будут блокировки между пользователями, думаю с точки зрения производительности было бы большой ошибкой. По крайней мере рефлектором я не увидел, что синхронные плагины ставяться в очередь, синхронные просто выполняются, один за другим. Артем, у вас есть ссылочка где это описано? |
|
|
|