2015-11-25 1 views
1

У меня есть плагин синхронизации, который запускается на Entity A, Update Post Operation. У меня есть еще один плагин Async, который запускается на том же объекте A и в операции обновления почты. Эти 2 плагина служат для разных целей, и они должны быть зарегистрированы таким образом.Плагины Async & Sync на одном и том же событии

У меня есть порядок выполнения устанавливается следующим образом: синхронизации плагин 1 Асинхронный плагин 2

Мой вопрос, если плагин синхронизации триггеров первого и бросить исключение, плагин делает Асинхронный все еще вызывает и то, что если я переключить так что у Async будет порядок выполнения 1 и порядок выполнения синхронизации 2.

Моя цель - откат любого обновления, если какой-либо из этих двух плагинов выдает исключение.

+0

Вы не можете откат асинхронного подключаемого модуля, если он вызывает и исключение, если вам действительно нужно это сделать, при подключении плагинов async вам нужно реализовать логику, чтобы отменить действия, выполняемые двумя плагинами, дюймы – Sxntk

ответ

3

Только когда синхронный трубопровод подключается без ошибок, запускаются асинхронные плагины.

Итак, ответ на ваш вопрос: нет.

+0

, предполагая, что плагины срабатывают при обновлении одного и того же атрибута. Если плагин sync работает с атрибутом1, а асинхронные плагины запускаются по фильтру atttribute2, будет запущен плагин async. Но если мы предположим, что он зарегистрировал обновление для всех атрибутов, тогда асинхронный вызов не будет запущен. –

+0

Итак, если у меня есть порядок выполнения, установите следующее: Плагин синхронизации 1 Плагин Async 2 и плагин Sync генерируют исключение, тогда плагин Async НЕ запускает ? – Nick

+0

Порядок выполнения: плагины предварительной проверки -> Плагины предварительной обработки -> Основная транзакция -> Плагины после операции | В то же время плагины Async -> Workflows – Sxntk