(可选)在每个查询级别设置超时 - Amazon Neptune
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

(可选)在每个查询级别设置超时

Neptune 向您提供了使用参数组选项 neptune_query_timeout 为查询设置超时的功能(请参阅参数)。但是,从 Java 客户端版本 3.3.7 开始,您也可以使用如下所示代码覆盖全局超时:

final Cluster cluster = Cluster.build("localhost") .port(8182) .maxInProcessPerConnection(32) .maxSimultaneousUsagePerConnection(32) .serializer(Serializers.GRAPHBINARY_V1D0) .create(); try { final GraphTraversalSource g = traversal().withRemote(DriverRemoteConnection.using(cluster)); List<Object> verticesWithNamePumba = g.with(ARGS_EVAL_TIMEOUT, 500L).V().has("name", "pumba").out("friendOf").id().toList(); System.out.println(verticesWithNamePumba); } finally { cluster.close(); }

或者,对于基于字符串的查询提交,代码如下所示:

RequestOptions options = RequestOptions.build().timeout(500).create(); List<Result> result = client.submit("g.V()", options).all().get();
注意

如果您将查询超时值设置得过高,可能会产生意想不到的成本,尤其是在无服务器实例上。如果没有合理的超时设置,查询保持运行的时间可能会比预期长得多,从而产生您意想不到的成本。在运行查询时可以纵向扩展到昂贵的大型实例类型的无服务器实例上尤其如此。

您可以通过使用查询超时值来避免此类意外开支,该值可以适应您预期的运行时间,并且只会导致异常长的运行超时。