mysql python Connector
我正在使用 我从连接池中取一个数据库连接。在所有请求的最后,我提交连接,以确保无意中丢失任何无所事事的交易。但是,我想以自动化的方式找到这些不承担的交易,以便可以在更合适的地方正确地投入。
有没有办法(或相关功能)以某种方式报告是否实际提交?如果有的话,我可以设置一些监视以跟踪这些事件并随着时间的流逝而慢慢解决。
I'm using the MySQL Python Connector
At the beginning of all requests, I take a database connection from the connection pool. At the end of all requests, I commit the connection to ensure that no uncommitted transactions are inadvertently lost. However, I would like to find these uncommitted transactions in an automated way, so that they can be properly committed in their more appropriate place.
Is there a way for Connection.commit() (or a related function) to somehow report if anything was actually committed? If there was, I can set up some monitoring to track these events and slowly resolve them over time.
发布评论
评论(1)
计划A:始终使用自动企业打开。对于某些类型的应用程序来说,这足够了,但不利用“交易”。例如,对于“银行”申请而言,这不是明智的。对于不存在多个连接资源的连接的随意应用程序,可能是可以的。或如果服务器在运行中间崩溃,那不会受到严重伤害的应用程序。
计划B:要始终明确使用开始和承诺。
计划C:混合A和B。离开自动启动,但有时会使用启动和提交。这为您提供了B(需要时)的安全性,以及A的简单性(其余时间)。
计划D:不要使用此!关闭AutoCommit,并希望记住最终指定
commit
。您似乎就是这样。(PS:这适用于所有应用程序,而不仅仅是Python。)
Plan A: Always run with autocommit turned on. This is sufficient for some types of applications, but does not make use of "transactions". This is not wise, for example, for a "bank" application. It is probably OK for casual applications where there won't be multiple connections competing for resources. Or apps that won't be seriously hurt if the server crashes in the middle of a run.
Plan B: Be religious about always explicitly using Start and Commit.
Plan C: Mix A and B. Leave autocommit ON, but sometimes use Start and Commit. This gives you the security of B (when needed), together with the simplicity of A (the rest of the time).
Plan D: DO NOT USE THIS! Turn autocommit OFF and hope to remember to specify
COMMIT
eventually. This seems to be the case you are in.(PS: This applies for all apps, not just Python.)