Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Définissez éventuellement des délais d'expiration au niveau de chaque requête
Neptune vous permet de définir un délai d'expiration pour vos requêtes à l'aide de l'option de groupe de paramètresneptune_query_timeout
(voirParamètres). À partir de la version 3.3.7 du client Java toutefois, vous pouvez également remplacer le délai d'expiration global par le code suivant :
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(); }
Sinon, le code se présente comme suit pour la soumission d'une requête basée sur une chaîne :
RequestOptions options = RequestOptions.build().timeout(500).create(); List<Result> result = client.submit("g.V()", options).all().get();
Note
Il est possible que vous encouriez des coûts inattendus si vous définissez une valeur de délai d'attente trop élevée, en particulier sur une instance sans serveur. Sans un délai d'attente raisonnable, votre requête peut continuer à s'exécuter bien plus longtemps que prévu, ce qui entraînera des coûts que vous n'auriez jamais prévus. Cela est particulièrement vrai pour une instance sans serveur susceptible de passer à un type d'instance volumineux et coûteux lors de l'exécution de la requête.
Vous pouvez éviter des dépenses imprévues de ce type en utilisant une valeur de délai d'attente adaptée à la durée d'exécution prévue et ne provoquant qu'un délai d'expiration anormalement long.