本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
或者,也可以在每個查詢層級設定逾時
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();
注意
如果您將查詢逾時值設得太高,特別是在無伺服器執行個體上,可能會產生非預期的成本。若沒有合理的逾時設定,您的查詢執行時間可能會比預期的長得多,進而產生您從未預期的成本。這在無伺服器執行個體上尤是如此,因為該執行個體在執行查詢時可能會縱向擴展為大型且昂貴的執行個體類型。
您可以使用符合您預期之執行階段的查詢逾時值,避免此類非預期的費用,而且只會導致異常的長時間執行逾時。
從 Neptune 引擎版本 1.3.2.0 開始,Neptune 支持一個新的海王星 _ 標籤模式參數。StrictTimeoutValidation
當此參數的值為時Enabled
,指定為要求選項或查詢提示的每個查詢逾時值不得超過參數群組中全域設定的值。在這種情況下,Neptune 將拋出InvalidParameterException
。
當值為時,可在 '/status' 端點上的回應中確認此設定Disabled
,而在 1.3.2.0 中,此參數的預設值為。Disabled