Udostępnianie kolejki wyników między kilkoma procesami

| | | | | | | | | | | | | |

Dokumentacja modułu multiprocessing pokazuje, jak przekazać kolejkę do procesu rozpoczętego za pomocą multiprocessing.Process. Ale jak mogę udostępnić kolejkę asynchronicznym procesom roboczym uruchomionym z apply_async? Nie potrzebuję dynamicznego łączenia ani niczego innego, wystarczy sposób, aby pracownicy (wielokrotnie) zgłaszali swoje wyniki z powrotem do bazy.

import multiprocessing def worker(name, que): que. put("%d jest gotowe" % name) if __name__ == "__main__": pool = multiprocessing.Pool(processes=3) q = multiprocessing.Queue() worker = pool.apply_async(worker, (33, q)) 

To nie działa z: RuntimeError: obiekty kolejki powinny być udostępniane między procesami tylko poprzez dziedziczenie.Rozumiem, co to oznacza, i rozumiem porady dotyczące dziedziczenia, a nie wymagają marynowania/odtrawiania (i wszystkich specjalnych ograniczeń Windows). Ale jak zrobić przekazać kolejkę w sposób, który działa? Nie mogę znaleźć przykładu i wypróbowałem kilka alternatyw, które się nie powiodły na różne sposoby. Proszę o pomoc?