Gremlin WebSocket未打开:readyState 2(关闭)
在冷启动时,当尝试初始化与Neptune的连接时,我的Lambda函数将返回此错误。之后,连接成功,没有错误。如果Lambda再次变冷,则返回错误Gremlin WebSocket未打开:readyState 2(关闭),gremlin,amazon-neptune,Gremlin,Amazon Neptune,在冷启动时,当尝试初始化与Neptune的连接时,我的Lambda函数将返回此错误。之后,连接成功,没有错误。如果Lambda再次变冷,则返回错误 const dc=新驱动器远程连接( `wss://${process.env.NEPTUNE_ENDPOINT}:${process.env.NEPTUNE_PORT}/gremlin`, {} ); 常量图=新图(); const g=graph.traversal().withRemote(dc); g、 V(); dc.close(); 使
const dc=新驱动器远程连接(
`wss://${process.env.NEPTUNE_ENDPOINT}:${process.env.NEPTUNE_PORT}/gremlin`,
{}
);
常量图=新图();
const g=graph.traversal().withRemote(dc);
g、 V();
dc.close();
使用gremlin@^3.4.6
和节点12.x。我发现针对ws-package报告了一个类似的错误,该错误被视为实现错误。
在使用Gremlin时,我们是否需要提前验证连接
编辑:这个问题似乎是从gremlin@3.4.6
。如果我降级到gremlin@3.4.5
问题消失了
编辑2:使用3.4.5再次获取错误。3.4.4似乎更好。你应该使用a,等待承诺得到解决
const gremlin=require('gremlin');
const{traversal}=gremlin.process.AnonymousTraversalSource;
const{DriverRemoteConnection}=gremlin.driver;
const rc=新驱动器远程连接(
`wss://${process.env.NEPTUNE_ENDPOINT}:${process.env.NEPTUNE_PORT}/gremlin`)
const g=traversal().withRemote(rc);
异步函数run(){
//守约
使用AWS Lambda时,不应为每次调用关闭与DB的连接,否则后续调用将失败。DriverRemoteConnection.close()是异步操作,因此必须使用Wait。类似于:
const dc = new DriverRemoteConnection(
`wss://${process.env.NEPTUNE_ENDPOINT}:${process.env.NEPTUNE_PORT}/gremlin`,
{}
);
const graph = new Graph();
const g = graph.traversal().withRemote(dc);
await g.V().limit(1).next();
await dc.close();
这帮我解决了同样的错误很好的捕获,但即使是await
,我也有同样的问题。它在3.4.4中有效,但在3.4.5中无效。