我目前正在开发一个使用 sqlalchemy 连接到数据库的应用程序。这个想法包括让应用程序的多个实例在使用相同数据库的不同计算机上运行。一旦提交,我希望能够在应用程序的所有实例中看到数据库中的更改。我目前正在使用 sqlalchemy 事件接口(interface),但是当我有多个并发的应用程序实例时它不起作用。我在其中一个实例中更改了某些内容,但在其他实例中没有发出任何信号。
最佳答案
你说了,你用的是SQLAlchemy的事件接口(interface),它不是RDBMS中的一个,SQLAlchemy不与连接到那个DB的其他实例通信。
SQLAlchemy 的事件系统在您自己的进程中调用一个函数。由您决定是否让此功能通过网络(或它们已连接)向其余部分发送信号。只要涉及到 SQLAlchemy,它就不知道连接到您的数据库的其他实例。
因此,您可能希望在运行数据库的机器上启动另一个服务器,并让所有其他服务器监听它,并采取相应的行动。
希望对您有所帮助。
关于python - sqlalchemy 中的并发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10601947/