【问题标题】:Can doctrine have multiple connections to a db?教义可以与数据库有多个连接吗?
【发布时间】:2014-03-04 15:02:43
【问题描述】:
我在我的 symfony 应用程序中使用了 gearman 工人。工作人员使用 symfony 服务,如教义和其他服务。我可以同时运行多个工人。我想知道当一次获得多个查询时,教义如何处理数据库查询(每个工作人员同时执行一个查询)。是否可以与 db 建立不同的连接,以便我的 gearman 工作人员可以将每个连接用于特定目的,例如一个连接从 db 读取和一个连接写入 db?
谢谢
【问题讨论】:
标签:
php
mysql
symfony
doctrine-orm
gearman
【解决方案1】:
您的每个工人都是自己的进程,具有自己的 EntityManager,每个都有自己的连接。因此,默认情况下,每个工作人员只有一个连接。
就“一次多个查询”而言,这就像网络绑定进程所发生的情况一样。从数据库的角度来看,它是完全一样的。多个同时连接执行查询。
worker 的棘手之处在于,它们的寿命往往比 Web 绑定进程(每个传入的 HTTP 请求都会重新初始化)长得多。您需要特别小心,闲置的工人可能会出现连接超时,因此当他们最终找到一份工作时,他们会爆发。