我在symfony应用程序中使用了gearman worker。工人们使用symfony的服务,比如doctrine和其他服务。我可以同时运行多个工作进程。我想知道当doing一次获得多个查询(每个worker同时执行一个查询)时,它是如何处理数据库查询的。还有,有没有可能有不同的连接到数据库,以便我的齿轮工人可以将每个连接用于特定的目的,例如一个连接从数据库读取,一个连接写入数据库?
谢谢
发布于 2014-03-05 07:31:17
您的每个工作进程都是自己的进程,有自己的EntityManager,每个进程都有自己的连接。因此,默认情况下,您将为每个worker提供一个连接。
就“一次多个查询”而言,这就像web绑定过程中发生的那样。从数据库的角度来看,这是完全相同的。多个同时执行查询的连接。
workers的棘手之处在于,它们往往比web绑定的进程(每次传入的HTTP请求都会重新初始化)存活的时间要长得多。需要特别注意的是,闲置的员工可能会出现连接超时的情况,因此当他们最终找到一份工作时,他们会爆炸。
https://stackoverflow.com/questions/22175498
复制相似问题