

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 或者，也可以在每個查詢層級設定逾時
<a name="best-practices-gremlin-java-per-query-timeout"></a>

Neptune 可讓您使用參數群組選項 `neptune_query_timeout` 來設定查詢的逾時 (請參閱 [Parameters](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`預設為 。  
 如需設定多個逾時設定時如何決定逾時優先順序的詳細資訊，請參閱 [neptune\_query\_timeout](parameters.md#parameters-db-cluster-parameters-neptune_query_timeout) 參數文件。