b
Size: a a a
b
CN
from multiprocessing import Event, Process, QueueЕсть второй процесс который синхронно складывает product в очередь, save_offers сохраняет их в базу, есть проблемы:
q = Queue(maxsize=100)
continue_running = Event()
def save_product(evnt, queue):
def save_offers(product):
...
with ThreadPoolExecutor(max_workers=10) as pool:
while evnt.is_set():
product = queue.get()
pool.submit(save_offers, product)
write: Process = Process(
target=save_product,
daemon=True,
name='consumer',
args=(continue_running, q),
)
continue_running.set()
continue_running.wait()
wite.start()
--multiprocessing-fork
в ос, может несколько десятков, хотя есть всего 5 процессов, основной, который запускается через ювикорн (фастапи, на 4 воркера), и 4 демона, в одном из которых запускается пул (выше написал его), ювикорн с 4 воркерами единожды запускает все процессы, очередь используют только 2 процессаYK
YK
from multiprocessing import Event, Process, QueueЕсть второй процесс который синхронно складывает product в очередь, save_offers сохраняет их в базу, есть проблемы:
q = Queue(maxsize=100)
continue_running = Event()
def save_product(evnt, queue):
def save_offers(product):
...
with ThreadPoolExecutor(max_workers=10) as pool:
while evnt.is_set():
product = queue.get()
pool.submit(save_offers, product)
write: Process = Process(
target=save_product,
daemon=True,
name='consumer',
args=(continue_running, q),
)
continue_running.set()
continue_running.wait()
wite.start()
--multiprocessing-fork
в ос, может несколько десятков, хотя есть всего 5 процессов, основной, который запускается через ювикорн (фастапи, на 4 воркера), и 4 демона, в одном из которых запускается пул (выше написал его), ювикорн с 4 воркерами единожды запускает все процессы, очередь используют только 2 процессаCN
from multiprocessing import Event, Process, QueueЕсть второй процесс который синхронно складывает product в очередь, save_offers сохраняет их в базу, есть проблемы:
q = Queue(maxsize=100)
continue_running = Event()
def save_product(evnt, queue):
def save_offers(product):
...
with ThreadPoolExecutor(max_workers=10) as pool:
while evnt.is_set():
product = queue.get()
pool.submit(save_offers, product)
write: Process = Process(
target=save_product,
daemon=True,
name='consumer',
args=(continue_running, q),
)
continue_running.set()
continue_running.wait()
wite.start()
--multiprocessing-fork
в ос, может несколько десятков, хотя есть всего 5 процессов, основной, который запускается через ювикорн (фастапи, на 4 воркера), и 4 демона, в одном из которых запускается пул (выше написал его), ювикорн с 4 воркерами единожды запускает все процессы, очередь используют только 2 процессаb
b
YK
CN
YK
YK
CN
CN
CN
CN
b
CN