Java 如果我们重新启动Spring启动应用程序,正在运行的用户线程会发生什么情况?
我有一个问题: 我们将重新启动/重新部署/重新发布Spring启动应用程序。 如果同时有一个线程执行某些业务代码(例如,将数据保存到数据库),那么该线程会发生什么情况?Java 如果我们重新启动Spring启动应用程序,正在运行的用户线程会发生什么情况?,java,spring-boot,Java,Spring Boot,我有一个问题: 我们将重新启动/重新部署/重新发布Spring启动应用程序。 如果同时有一个线程执行某些业务代码(例如,将数据保存到数据库),那么该线程会发生什么情况? 是否有可能在重启后数据库处于不一致状态,并且我们正在处理的请求都失败了,我们无法对此进行补救?如果重新启动应用程序,所有线程都将丢失,用户输入的数据也将丢失 如果您有Oracle、MySQL、PostgreSQL等关系数据库,那么连接将丢失,事务将回滚。由于ACID规则,数据不会处于不一致的状态。这取决于事务的管理方式,如果事务
是否有可能在重启后数据库处于不一致状态,并且我们正在处理的请求都失败了,我们无法对此进行补救?如果重新启动应用程序,所有线程都将丢失,用户输入的数据也将丢失
如果您有Oracle、MySQL、PostgreSQL等关系数据库,那么连接将丢失,事务将回滚。由于ACID规则,数据不会处于不一致的状态。这取决于事务的管理方式,如果事务在业务代码末尾提交所有内容,则所有内容都将被丢弃,如果您提交数据库中的每一位数据,则可能会出现与您描述的情况类似的情况。