当前位置: 首页 > 知识库问答 >
问题:

使用持续运行的应用程序运行mongock安全吗?

季阳朔
2023-03-14

我们在库伯内特斯有一个作为24x7服务运行的应用程序,我们不能将其关闭以运行我们的迁移脚本。我只想验证mongock框架不会干扰我们应用程序的操作——例如,通过锁定集合过长的时间。

我知道这个问题听起来很广泛,因为迁移的影响取决于我们在变更日志/变更集中编写的代码。

但我想知道mongock框架本身是否对mongo集合有任何影响,除了它自己的内部集合(mongockChangeLog和mongockLock)

例如,除了自己的收藏之外,mongock是否持有mongo收藏的任何锁?

我假设mongockLock拥有的锁不会对mongockChangeLog以外的任何集合产生影响。

同样,当事务被启用时,mongock是否拥有任何可能影响或影响我们的代码所拥有的事务的事务?

共有1个答案

西门庆
2023-03-14

你的机构是对的。Mongock的锁只是内部的。同样值得知道的是,您可以配置这个锁需要多长时间,Mongock等待多长时间,如果它无法获取它,以及它将尝试多长时间。Mongock文档中的所有内容

谈到事务,Mongock将事务完全委托给下面的框架。我不完全理解您的问题,但我可以解释Mongock提供的交易类型,您可以更好地了解其影响。

  • 要么全有,要么全无:整个Mongock进程包装在一个事务中,如果在任何时候失败,整个迁移都将回滚。(当前提供)

一般来说,建议组织迁移的方法是每次更改日志。更改日志应该代表一个迁移步骤,它不应该以功能方法设计。例如,如果您的模型中有Client和Bill,您不应该为Client设计一个更改日志,为Bill设计另一个,其中包含您在一段时间内应用的不同迁移。相反,您应该以这样一种方式进行,即更改日志代表一个迁移步骤,影响整个模型,以便您可以通过更改日志识别您的迁移历史记录。从这个角度来看,Mongock的最佳实践是使用每次更改日志事务

 类似资料:
  • 运行应用程序时的问题:在Consol屏幕中 java.lang.SecurityException:权限拒绝:starting Intent{act=Android.Intent.action.main cat=[Android.Intent.category.launcher]flg=0x10000000 cmp=com.test.sample/.setting}from null(PID=91

  • 例如。 这应该运行一个简单的hello world应用程序,摘自oracle文档。然而,当我‘运行’这个代码,没有窗口打开。取而代之的是打开一个名为“Java”的应用程序。看起来'java'只是一个位于'jdk1.8.0_25.jdk/contents/home/bin'中的'UNIX可执行文件‘。应用程序'java'绝对不显示任何东西,并且在没有强制退出的情况下无法关闭。 我在MacBook上运

  • 本文向大家介绍Android 安装并运行应用程序,包括了Android 安装并运行应用程序的使用技巧和注意事项,需要的朋友参考一下 示例 要安装APK文件,请使用以下命令: 或如果该应用程序已存在并且我们要重新安装 要卸载应用程序,我们必须指定其软件包 使用以下命令以提供的包名称(或应用程序中的特定活动)启动应用程序: 例如,要启动位智:            

  • 问题内容: OMG-Eclipse(3.3 Europa)发生了什么- 是否有人遇到了这个问题(请记住,我一直在卸载不同的Tomat容器并安装其他容器,但无论如何,这是另一个故事) 当我在我的项目中更改代码行或删除项目中的类时(当我进行调试时),它实际上转到注释掉的行,并且无论如何都运行该行!!!例如 //System.out.println(“您应该无法阅读此内容!”); 更新:这可以通过设置项

  • 主要内容:Eclipse 运行应用程序Eclipse 运行应用程序 运行 Java 程序的最快方法是使用 Package Explorer 视图。 在包资源管理器视图中 : 右键单击包含 main 方法的 java 类。 选择“Run As”→ Java Application。 通过选择包含 main 方法的类并单击 Alt + Shift + X、J,可以使用 Package Explorer 视图执行相同的操作。 上述任一操作都

  • 作为一个软件开发人员,我需要做哪些步骤来允许我的JavaFX应用程序与JDK11+一起运行?有什么好的广告吗?是否可以通过Gradle获得OpenJDK?