Compartir una cola de resultados entre varios procesos

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

La documentación del módulo multiprocessing muestra cómo pasar una cola a un proceso iniciado con multiprocessing.Process. Pero, ¿cómo puedo compartir una cola con procesos de trabajo asíncronos iniciados con apply_async? No necesito unión dinámica ni nada más, solo una forma para que los trabajadores (repetidamente) informen sus resultados a la base.

import multiprocessing def worker(name, que): que. put("%d terminado" % nombre) if __name__ == "__main__": pool = multiprocesamiento.Pool(procesos=3) q = multiprocesamiento.Cola() trabajadores = pool.apply_async(trabajador, (33, q)) 

Esto falla con: RuntimeError: los objetos de la cola solo deben compartirse entre procesos a través de la herencia. Entiendo lo que esto significa, y entiendo el consejo de heredar en lugar de requieren decapado/desdecapado (y todas las restricciones especiales de Windows). Pero, ¿cómo hago paso la cola de una manera que funcione? No puedo encontrar un ejemplo, y probé varias alternativas que fallaron de varias maneras. ¿Ayuda, por favor?