如何取消当前节点上的所有流计算的订阅?

我在测试DolphinDB的流计算功能时,注册了很多流计算的订阅,有没有办法一键清除当前节点上的所有订阅?

请先 登录 后评论

1 个回答

Jason Tang - 时序数据库技术支持

可以参考下面的自定义函数,作用是清除当前节点的所有流计算相关的订阅:

def ClearAllSubscriptions(){
	if(getStreamingStat().pubTables.rows() > 0){
		do{
			try{
				tableName = getStreamingStat().pubTables[0,0]
				actionName =  getStreamingStat().pubTables[0,3]
				actionName = strReplace(actionName,"[","")
				actionName = strReplace(actionName,"]","")
				arr = actionName.split(',')
			}
			catch(ex){
				print(ex)
			}
			for(actionName in arr){
				try{	
					print("unsub: " + tableName + ", "  + actionName)
					unsubscribeTable(tableName=tableName, actionName=actionName)
					sleep(10)
				}
				catch(ex){
					print(ex)
				}
			}
	
		}
		while(getStreamingStat().pubTables.rows() != 0)
	}
	print("All subscriptions have been cleared !")
}

请先 登录 后评论