У меня есть движок SQLAlchemy, созданный в родительском процессе с размером пула 5. Во время разветвления в пуле нет никаких соединений.
Поскольку дочерние процессы имеют собственное пространство памяти, это означает, что унаследованный движок должен быть доступен только им, верно?
- Если это так, означает ли это, что общее количество возможных активных
подключений будет равно 10 [количество процессов] * 5 [размер_пула] = 50?
Если нет, то как здесь работает пул соединений?
import os
# Create an engine with a connection pool in the parent process
engine = create_engine('sqlite:///example.db', pool_size=5)
def initializer():
# Connections in the pool are gracefully removed!
engine.dispose(close=False)
def get_stuff():
with engine.connect() as conn:
conn.execute(text("..."))
with multiprocessing.Pool(10,initializer=initializer) as pool:
results = [pool.apply_async(get_stuff) for _ in range(10)]
# Collect results
output = [result.get() for result in results]
Подробнее здесь: https://stackoverflow.com/questions/786 ... processing