使用Python websocket-client多线程

时间:2017-10-20 02:03:53

标签: python multithreading websocket

使用Python websocket-client和multiprocessing.Pool我能够生成websocket-client的3个实例,每个实例连接到不同的URL并将数据写入3个单独的词典。

我的目标是运行第4个进程,以便在更新时从所有3个词典中读取数据。

在这些流程之间共享数据的最佳方式是什么?

我查看了multiprocessing examples,但因为websocket.WebSocketApp采用的参数包含要调用的函数名称(on_message),并且它不接受其他自定义参数,I&I #39;我不清楚on_message函数是否能够传递Value或Pipe等的实例。

1 个答案:

答案 0 :(得分:0)

多进程并不共享数据,因此您必须使用某种数据库。

我使用gevent和gevent-websocket库。

https://pypi.python.org/pypi/gevent-websocket/

您有两个选项,您可以根据需要异步运行任意多个选项,或者您可以使用GIPC模块实际上为您进行多处理gevent,并具有通过读写管道相互通信的额外好处。

https://gehrcke.de/gipc/