Używam Django na serwerze Ubuntu z nginxem i gunicornem. Próbuję zrobić kilka procesów, które działają na mojej lokalnej maszynie, ale zawiesza się, dopóki pracownik gunicorn nie przekroczy czasu na moim serwerze.Python multiprocessing Pool zawiesza się na serwerze ubuntu
cpu_count = int(multiprocessing.cpu_count())
pool = Pool(processes = cpu_count)
result = pool.map_async(apiSimulAvail, rate_ranges)
result.wait()
...do some more stuff once all processes return
Zawiesza się pod numerem pool = Pool(processes = cpu_count)
. Nie dostaję żadnych błędów, pracownik gunicorn po prostu przekracza limit czasu i uruchamia się ponownie.
Wszelkie wskazówki, dlaczego tak się dzieje i/lub jak mogę je rozwiązać, są bardzo mile widziane. Dzięki.
Czy uruchomiłeś wątki przed rozpoczęciem tych procesów? –
Nie w tym widoku. – apardes
Co masz na myśli "ten widok"? Jeśli proces się zawiesza, może to być spowodowane tym, że odziedziczył on zły stan synchronizacji od procesu rodzica, dziadka lub pradziadka. Najlepszym, być może jedynym sposobem, aby się upewnić, że to się nigdy nie stanie, jest to, aby nigdy nie rozpoczynać procesów po uruchomieniu jakichkolwiek wątków. –