Разделение очереди результатов между несколькими процессами

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

В документации по модулю multiprocessing показано, как передать очередь процессу, запущенному с помощью multiprocessing.Process. Но как я могу разделить очередь с асинхронными рабочими процессами, запущенными с помощью apply_async? Мне не нужно динамическое соединение или что-то еще, просто способ для рабочих (неоднократно) сообщать о своих результатах обратно в базу.

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

Это приводит к сбою: RuntimeError: Объекты очереди должны быть разделены между процессами только через наследование. Я понимаю, что это значит, и я понимаю совет наследовать, а не требуют травления/распаковки (и всех особых ограничений Windows). Но как сделать передачу очереди так, чтобы это работало? Я не могу найти пример, и я пробовал несколько альтернатив, которые не удались различными способами. Помогите пожалуйста?