As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Opcionalmente, definir tempos limite em um nível por consulta
O Neptune oferece a capacidade de definir um tempo limite para suas consultas usando a opção de grupo de parâmetros neptune_query_timeout (consulte Parâmetros). Você também pode substituir o tempo limite global com um código como este:
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(); }
Ou, para envio de consulta baseada em string, o código teria a seguinte aparência:
RequestOptions options = RequestOptions.build().timeout(500).create(); List<Result> result = client.submit("g.V()", options).all().get();
nota
Você poderá gerar custos inesperados se definir um valor de tempo limite de consulta muito alto, especialmente em uma instância sem servidor. Sem uma configuração de tempo limite razoável, a consulta poderá continuar sendo executada por muito mais tempo do que o esperado, gerando custos jamais previstos. Esse é particularmente o caso em uma instância sem servidor cuja escala pode ser aumentada verticalmente para um tipo de instância grande e caro durante a execução da consulta.
É possível evitar despesas inesperadas desse tipo usando um valor de tempo limite de consulta que acomode o tempo de execução esperado e ocasione apenas um tempo limite de execução excepcionalmente longo.
A partir da versão 1.3.2.0 do mecanismo do Neptune, o Neptune oferece suporte a um novo parâmetro neptune_lab_mode como StrictTimeoutValidation. Quando este parâmetro tem um valor de Enabled, um valor de tempo limite por consulta especificado como uma opção de solicitação ou uma dica de consulta não pode exceder o valor definido globalmente no grupo de parâmetros. Nesse caso, o Neptune lançará InvalidParameterException.
Essa configuração pode ser confirmada em uma resposta no endpoint '/status' quando o valor for. Disabled Na versão do mecanismo1.3.2.0, o valor padrão desse parâmetro éDisabled. A partir da versão do motor1.4.0.0, o StrictTimeoutValidation parâmetro é Enabled por padrão.
Para obter mais informações sobre como a precedência de tempo limite é determinada quando várias configurações de tempo limite são definidas, consulte a documentação do parâmetro neptune_query_timeout.