我正在与一位已将其中一个插件重新注册到异步位置的客户交谈,他们声称他们的体验是“奇怪的行为”。根据描述,似乎当异步插件(消息创建)中抛出异常时,该进程不会回滚。实例已创建。
这是预期的行为吗?如果是这样,可以做些什么来阻止它?
答案 0 :(得分:4)
异步插件不在主操作事务中执行,这意味着当抛出异常时,主操作不会回滚。
常见示例是在创建新帐户时在插件中创建任务:
如果插件是同步的并且插件中引发InvalidPluginExecutionException
,则不会创建帐户和任务,并且会向用户提示错误。
如果插件是异步的并且插件中引发InvalidPluginExecutionException
,则会创建帐户,不会创建任务,也不会向用户提示错误。