如题,是不是现在还不支持异步?
当前版本是不支持异步的,支持的话会及时同步出来,请关注相关发版信息
2.0的java client不打算支持异步了,因为依赖的第三方库没有很好的实现,假如后续要提供,也只是包装一个异步接口,内部起线程去执行同步的接口来达到异步的效果,这样其实没什么大的意义,所以后续看用户的需求,看是否要提供这样的接口。
好的。
上面已经说了,包装的异步,也只是在异步接口里面起个线程做而已,觉得没意义所以没提供。
我在业务层 先用CompletionService 来封装一下
我一次初始化几个session后
线程池里面 每次从阻塞队列里面获取session来执行查询,比之前的方式快了至少一倍
public static BlockingQueue<Session> completionQueue = new LinkedBlockingQueue<Session>();
你要看查询什么。你重新拿一个session再执行query,和你一直拿不释放的session执行query,是会多一次认证的。这个多的时间应该就是认证的时间。
嗯 之前 是串行 现在加了一个线程池 并行 发挥graph的并发优势
有个疑问请问一下,
public static BlockingQueue completionQueue = new LinkedBlockingQueue();
提前存储的session 过期时间是多少?默认NebulaPoolConfig 的timeout为0,代表永远不过期吗?
还有就是nebula graph重启后,提前存储的session会报错Session `86’ has expired。在这种情况下 如何避免呢?
我看代码里面有ping 函数,这个怎么用呢?
谢谢
提前存储的session 过期时间是多少?默认NebulaPoolConfig 的timeout为0,代表永远不过期吗
不是过期,是指向服务端发送的请求的超时时间。
还有就是nebula graph重启后,提前存储的session会报错Session `86’ has expired。在这种情况下 如何避免呢?
这个需要重新从连接池里面拿新的session,或者等服务端的持久化 sessionId 的 pr 进去
我看代码里面有ping 函数,这个怎么用呢?
这个主要是检测服务端是否能连接上,或者检测服务端是否活着。