我想知道在 Python 中的两个进程之间共享队列(资源)所遵循的最佳实践。这是每个进程正在执行的操作:
Process_1:不断从流式 API 获取数据(以 json 格式)
Process_2:是一个守护进程(类似于 Sander Marechal 的代码),它将数据(一次一个)提交到数据库中
因此,Process_1(或生产者)将一个数据单元放到该共享资源上,而Process_2(或消费者)将轮询该共享资源以获取任何新的数据单元,并将它们存储在数据库中(如果有)。
我想到了一些选择:
- 使用pickle(缺点:酸洗和去酸洗的额外开销)
- 通过
stdout
Process_1 向stdin
Process_2 传递数据(缺点:无,但不确定如何使用守护进程来实现) - 使用库
pool
中的对象multiprocessing
(缺点:不确定如何将其编码为一个进程是守护进程)
我想要一个在这方面实践的最佳解决方案,带有一些代码:)。谢谢。