SQLAlchemy,mysql和并发会话

时间:2015-07-17 19:56:13

标签: mysql multithreading session python-3.x sqlalchemy

我有多线程python3应用程序。要访问数据库,我使用SQLAlchemy 1.0.6(使用MySQL会话)。

数据库具有表WorkerTask,其中包含具有不同状态的任务。 我的应用程序(工作人员)的线程执行给定的任务并在执行期间更改其状态:“待定”,“正在运行”,“已完成”。

另一个线程(监视器)检查任务的状态并执行某些操作。 此时我有一个错误 - 从数据库监视请求任务状态,但接收旧任务状态。似乎自启动监视器线程并打开其数据库连接后任务状态不会更改。

我检查了MySQL的行响应 - 监视器线程接收过时的数据。 在使用phpmyadmin的同时,我看到了正确的任务状态。 所以我的工作线程会将更改持续存储到数据库中,但监视器会收到过时的数据。

我认为这是一个与其会话相关的MySQL技巧。

如何解决?

更新

失败的原因以及如何解决此问题:SQLAlchemy - entity not marked as expired

0 个答案:

没有答案