有没有办法在 liquibase 释放更改日志锁时得到通知?
Is there a way to be notified when liquibase has released change log lock?
在Java/Spring启动应用程序中,我想知道 liquibase 在启动过程中何时释放更改日志锁。是否有任何可以启用的 liquibase 事件,或者是否有挂钩到生命周期来做出这个决定?
我快速浏览了一下 LockService and Spring bean 没有看到任何可在其中添加侦听器的函数。但是您可以使用 AOP 库添加方面,以便在 releaseLock() 完成后执行。
如果您愿意编写一点 Java 代码,您可以编写自己的 LockService
接口实现,它扩展 StandardLockService
并仅覆盖 releaseLock()
方法,使用 super()
调用原始方法,然后插入你想要的任何行为。
您还需要实施 getPriority()
方法和 return 高于 1 的值(标准优先级)。
您所要做的就是将您的 jar 与 liquibase jar 放在 class 路径上 - liquibase 将扫描这些 jar,发现您有一个实现 LockService 的 class,然后当LockServiceFactory.getLockService()
方法被调用,你的 class 将被 returned。
在Java/Spring启动应用程序中,我想知道 liquibase 在启动过程中何时释放更改日志锁。是否有任何可以启用的 liquibase 事件,或者是否有挂钩到生命周期来做出这个决定?
我快速浏览了一下 LockService and Spring bean 没有看到任何可在其中添加侦听器的函数。但是您可以使用 AOP 库添加方面,以便在 releaseLock() 完成后执行。
如果您愿意编写一点 Java 代码,您可以编写自己的 LockService
接口实现,它扩展 StandardLockService
并仅覆盖 releaseLock()
方法,使用 super()
调用原始方法,然后插入你想要的任何行为。
您还需要实施 getPriority()
方法和 return 高于 1 的值(标准优先级)。
您所要做的就是将您的 jar 与 liquibase jar 放在 class 路径上 - liquibase 将扫描这些 jar,发现您有一个实现 LockService 的 class,然后当LockServiceFactory.getLockService()
方法被调用,你的 class 将被 returned。