

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

# （可选）在每个查询级别设置超时
<a name="best-practices-gremlin-java-per-query-timeout"></a>

Neptune 向您提供了使用参数组选项 `neptune_query_timeout` 为查询设置超时的功能（请参阅[参数](parameters.md)）。您也可以用如下代码覆盖全局超时：

**注意**  
查询超时设置仅适用于查询评估。基于字节码的事务控制操作（例如`tx().commit()`和）`tx().rollback()`不受查询超时的影响。有关更多信息，请参阅 [字节码提交和回滚的超时行为](access-graph-gremlin-transactions.md#access-graph-gremlin-transactions-commit-rollback-timeout)。

```
  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();
```

如果查询超过每个查询的超时时间，Neptune 会将其终止。是否重试超时查询取决于失败的性质和您的工作量。有关指南，请参阅[异常处理和重试](transactions-exceptions.md)。

**注意**  
如果您将查询超时值设置得过高，可能会产生意想不到的成本，尤其是在无服务器实例上。如果没有合理的超时设置，查询保持运行的时间可能会比预期长得多，从而产生您意想不到的成本。在运行查询时可以纵向扩展到昂贵的大型实例类型的无服务器实例上尤其如此。  
您可以通过使用查询超时值来避免此类意外开支，该值可以适应您预期的运行时间，并且只会导致异常长的运行超时。  
 从 Neptune 引擎版本 1.3.2.0 开始，Neptune 支持一个新的 neptune\_lab\_mode 参数作为 `StrictTimeoutValidation`。当该参数的值设置为 `Enabled` 时，通过请求选项或查询提示指定的单查询超时时间，不得超过参数组中设置的全局超时值。若超出限制，Neptune 会抛出 `InvalidParameterException`。  
 当值为时，可以在 “/status” 端点的响应中确认此`Disabled`设置。在引擎版本中`1.3.2.0`，此参数的默认值为`Disabled`。从引擎版本开始`1.4.0.0`，`StrictTimeoutValidation``Enabled`参数默认为。  
 有关配置多个超时设置时如何确定超时优先级的更多信息，请参阅 nept [une\_query\_](parameters.md#parameters-db-cluster-parameters-neptune_query_timeout) timeout 参数文档。