Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我正在执行n个进程,其中n可能在5-50之间。每个进程都在postgres上执行多个dml操作_Python_Postgresql_Psycopg2 - Fatal编程技术网

Python 我正在执行n个进程,其中n可能在5-50之间。每个进程都在postgres上执行多个dml操作

Python 我正在执行n个进程,其中n可能在5-50之间。每个进程都在postgres上执行多个dml操作,python,postgresql,psycopg2,Python,Postgresql,Psycopg2,进程将全天候运行,并将定期重新启动(如每周一次) 在这种情况下,哪个选项更好: 为每个进程打开postgres连接,该连接将持续到进程的生命周期 打开postgres连接池并在进程之间共享 主要目标是,在同一时间不存在太多的PostgreSQL连接,否则,危险会增加,其中许多连接将同时变为活动状态,从而导致数据库过载 因此,只要您有大约20个进程,就可以保持简单,并且每个进程都有一个持久的连接。对于许多进程,您需要一个连接池。您有第三个选项,即每个进程在需要时打开一个连接,完成它的工作,然后关闭

进程将全天候运行,并将定期重新启动(如每周一次)

在这种情况下,哪个选项更好:

  • 为每个进程打开postgres连接,该连接将持续到进程的生命周期

  • 打开postgres连接池并在进程之间共享


  • 主要目标是,在同一时间不存在太多的PostgreSQL连接,否则,危险会增加,其中许多连接将同时变为活动状态,从而导致数据库过载


    因此,只要您有大约20个进程,就可以保持简单,并且每个进程都有一个持久的连接。对于许多进程,您需要一个连接池。

    您有第三个选项,即每个进程在需要时打开一个连接,完成它的工作,然后关闭它,每次需要访问PG时,我想另一件事是:他们需要用什么频率来访问PG?@ 404,在大多数情况下,这听起来不是一个好的选择。不管怎么说,这就是我们在工作中的做法,并不是说我想出了这个设计,而是我同意它。在大部分时间不使用连接的情况下保持连接打开似乎是浪费时间。在需要更高频率访问的地方,我会保持连接并重用它。我的进程将24*7处于活动状态,在此期间执行一系列需要几个dml操作的任务。这将在一天中重复。进程将每周停止并重新启动一次。在10-30个进程中使用连接池上的持久连接有什么好处。只要连接是持久的,连接池的唯一好处就是连接更少。@CodeHacker我想你问错了方向。在系统中注入另一个活动部件没有任何用途时,其优点是什么?这只是需要维护的另一件事,需要(错误地)配置、有bug和引入延迟。