用python API订阅流数据时收不到数据

发布于 09-12 03:44 字数 1126 浏览 35 评论 0

我在DolphinDB中创建了一张流表,然后分别在本地节点中订阅和在python api订阅这张流表,本地节点中订阅能收到流数据,但python api订阅端收不到流数据,请问可能是什么原因?我已经把操作系统的防火墙关掉了。

流数据相关配置如下:

maxPubConnections=10
persistenceDir=d:\database\DolphinDB\streamData
subPort=8888
maxSubConnections=10
mode=single

流数据表与本地订阅代码如下:


def createCheckST(){
    colnames = [`ts, `minID,`maxID,`err ]
    coltypes = [TIMESTAMP, INT,  INT, STRING]
    st=  streamTable(10000:0, colnames, coltypes)  
    enableTableShareAndPersistence(st,"mtopst", false, true, 1000,100,0);

    st1=  streamTable(10000:0, colnames, coltypes)  
    enableTableShareAndPersistence(st1,"ntopst", false, true, 1000,100,0);

}
createCheckST()

subscribeTable(,tableName="ntopst",actionName="node",handler=mtopst,offset=0)

t=table(now() as ts,1 as minid,1 as maxid,"error" as err)
ntopst.append!(t)

python代码如下:

from threading import Event
import dolphindb as ddb

def h(msg):
    print(msg)

s=ddb.session()
s.enableStreaming(8888)
s.subscribe("127.0.0.1",8848,h,"ntopst",actionName="python",offset=0,resub=True)
Event().wait()

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

﹏雨一样淡蓝的深情2022-09-19 03:44:55

DolphinDB中数据订阅是push模式,也就是说数据有变化时,发布方会推数据到订阅端。所以订阅端需要有端口在监听。这个端口号,节点中通过配置项subPort设置。在python api中通过s.enableStreaming(port)中的参数port设置。在同个主机上,这些订阅端的监听端口号不能相同。上述问题的原因就是两个订阅端都设了8888.修改其中一个即可解决问题。

可用netstat察看一下端口的状态,比如:

//windows上用
netstat -ano|findstr "8848"

//linux上用
netstat -anlp | grep 8848
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文