日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

配置Gremlin請求超時時間

圖數(shù)據(jù)庫GDB支持修改客戶端向圖數(shù)據(jù)庫GDB發(fā)送請求數(shù)據(jù)時的超時時間,您可以根據(jù)業(yè)務場景和數(shù)據(jù)量等修改超時時間。本文介紹不同語言環(huán)境中配置Gremlin請求超時時間的方法。

超時時間簡介

  • 客戶端向圖數(shù)據(jù)庫GDB發(fā)送請求數(shù)據(jù)時,如果請求時間超過圖數(shù)據(jù)庫GDB設置的超時時間(默認為1800毫秒),則會發(fā)生超時現(xiàn)象,造成結果無法返回的現(xiàn)象。

  • 超時時間的值為Long類型,單位為毫秒。

  • 建議您不要配置過大的超時時間。

  • 當客戶端和圖數(shù)據(jù)庫GDB的連接在請求超時前斷開時,會導致新的請求不生效。

使用各種語言配置超時時間

以下介紹各語言接入使用scripts請求的超時時間配置,示例配置超時時間為5000毫秒。

Java

  1. 在客戶端安裝Java和Maven工具。

    1. 執(zhí)行如下命令,安裝Java(以1.8.0版本為例)。

      sudo yum install java-1.8.0-devel
    2. 執(zhí)行如下命令,添加具有Maven程序包的存儲庫。

      wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
    3. 執(zhí)行如下命令,設置存儲庫的版本號(以4.0.0為例)。

      sudo sed -i s/4.0.0/6/g /etc/yum.repos.d/epel-apache-maven.repo
    4. 執(zhí)行如下命令,安裝Maven工具。

      sudo yum install -y apache-maven
      說明

      如果回顯信息中報類似XXX的錯誤,您可以執(zhí)行以下任意一種命令安裝Maven。

      • sudo yum install -y apache-maven --skip-broken
      • sudo yum install -y apache-maven --nobest
  2. 創(chuàng)建用于連接圖數(shù)據(jù)庫GDB實例的配置文件(以pom.xml為例)。

    1. 執(zhí)行如下命令,創(chuàng)建并進入配置文件所在目錄。

      mkdir gdb-gremlin-test
      cd gdb-gremlin-test
    2. 執(zhí)行如下命令,創(chuàng)建pom.xml文件。

      touch pom.xml
    3. 執(zhí)行如下命令,編輯pom.xml文件。

      vi pom.xml

      輸入i,將以下內容復制至pom.xml文件中。

      <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.gdb.alibaba</groupId>
        <artifactId>GdbGremlinExample</artifactId>
        <packaging>jar</packaging>
        <version>1.0-SNAPSHOT</version>
        <name>GdbGremlinExample</name>
        <url>http://maven.apache.org</url>
        <dependencies>
          <dependency>
             <groupId>org.apache.tinkerpop</groupId>
             <artifactId>gremlin-driver</artifactId>
             <version>3.4.0</version>
          </dependency>
        </dependencies>
        <build>
           <plugins>
              <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-compiler-plugin</artifactId>
                  <version>2.0.2</version>
                  <configuration>
                      <source>1.8</source>
                      <target>1.8</target>
                  </configuration>
              </plugin>
              <plugin>
                  <groupId>org.codehaus.mojo</groupId>
                  <artifactId>exec-maven-plugin</artifactId>
                  <version>1.3</version>
                  <configuration>
                      <mainClass>com.gdb.alibaba.Test</mainClass>
                      <complianceLevel>1.8</complianceLevel>
                  </configuration>
              </plugin>
          </plugins>
        </build>
      </project>

      按Esc鍵,輸入:wq退出vi編輯器。

  3. 創(chuàng)建用于連接Java客戶端的配置文件(以Test.java為例)。

    1. 執(zhí)行如下命令,創(chuàng)建并進入配置文件所在目錄。

      mkdir -p src/main/java/com/gdb/alibaba/
      cd src/main/java/com/gdb/alibaba
    2. 執(zhí)行如下命令,創(chuàng)建Test.java文件。

      touch Test.java
    3. 執(zhí)行如下命令,編輯Test.java文件。

      vi Test.java

      輸入i,將以下內容根據(jù)業(yè)務需求在本地修改完成后復制粘貼至Test.java文件中。

      package com.gdb.alibaba;
      import org.apache.tinkerpop.gremlin.driver.Cluster;
      import org.apache.tinkerpop.gremlin.driver.Client;
      import org.apache.tinkerpop.gremlin.driver.Result;
      import org.apache.tinkerpop.gremlin.driver.ResultSet;
      import org.apache.tinkerpop.gremlin.driver.RequestOptions;
      import java.util.List;
      import java.util.Map;
      import java.util.HashMap;
      import java.io.File;
      public class Test
      {
          public static void main( String[] args )
          {
            try {
              if(args.length != 1) {
                  System.out.println("gdb-remote.yaml path needed");
                  return;
              }
              String yaml = args[0];
      
              // 1. 初始化客戶端。
              Cluster cluster = Cluster.build(new File(yaml)).create();
              Client client = cluster.connect().init();
      
              // 2. 配置超時時間為5000毫秒。
              RequestOptions.Builder options = RequestOptions.build().timeout(5000);
              options.addParameter("G___id", "sand131_id_5_99");
              String dsl = "g.V(G___id)";
      
              // 3. 發(fā)送Gremlin請求到圖數(shù)據(jù)庫GDB服務端。
              ResultSet results = client.submit(dsl, options.create());
              List<Result> result = results.all().join();
              result.forEach(p -> System.out.println(p.getObject()));
      
              // 4. 關閉客戶端。
              cluster.close();
            } catch (Exception e) {
              System.out.println(e.getMessage());
            }
        }
      }

      按Esc鍵,輸入:wq退出vi編輯器。

  4. 創(chuàng)建用于連接Java客戶端和圖數(shù)據(jù)庫GDB實例的配置文件(以gdb-remote.yaml為例)。

    1. 執(zhí)行如下命令,創(chuàng)建gdb-remote.yaml文件。

      touch gdb-remote.yaml
    2. 執(zhí)行如下命令,編輯gdb-remote.yaml文件。

      vi gdb-remote.yaml

      輸入i,將以下內容按照業(yè)務需求在本地修改完成后復制粘貼至gdb-remote.yaml文件中。

      hosts: <your_gdb_endpoint> //<your_gdb_endpoint>為圖數(shù)據(jù)庫GDB實例的連接地址。
      port: <port> //<port>為圖數(shù)據(jù)庫GDB實例的端口號。
      username: <username> //<username>為圖數(shù)據(jù)庫GDB實例的賬號。
      password: <password> //<password>為圖數(shù)據(jù)庫GDB實例的賬號密碼。
      serializer: {
        className: org.apache.tinkerpop.gremlin.driver.ser.GraphBinaryMessageSerializerV1,
        config: { serializeResultToString: false }
      }

      按Esc鍵,輸入:wq退出vi編輯器。

  5. 編譯并執(zhí)行Java程序。

    1. 執(zhí)行如下命令,進入pom.xml文件所在目錄(即用于連接圖數(shù)據(jù)庫GDB實例的配置文件所在目錄)。

      cd /home/gdb-gremlin-test
    2. 執(zhí)行如下命令,編譯并執(zhí)行Java程序。

      mvn compile exec:java  -Dexec.args="/home/apache-tinkerpop-gmlin-console-3.4.0/conf/gdb-remote.yaml"

Python

  1. 執(zhí)行如下命令,初始化客戶端。

    client = client.Client('ws://${your-gdb-endpoint}:8182/gremlin', 'g', username="${username}", password="${password}")
  2. 執(zhí)行如下命令,配置超時時間為5000毫秒。

    dsl = "g.V(G___id)"
    parameters = {}
    parameters["G___id"] = "sand131_id_5_99"
    message = RequestMessage('', 'eval', {'gremlin': dsl, 'scriptEvaluationTimeout': 5000, 'bindings': parameters})
  3. 執(zhí)行如下命令,發(fā)送請求至圖數(shù)據(jù)庫GDB服務端。

    results = client.submit(message).all().result()
  4. 執(zhí)行如下命令,關閉客戶端。

    client.close()

.Net

  1. 執(zhí)行如下命令,初始化客戶端。

    var gremlinServer = new GremlinServer(endpoint, port, username: username, password: password); 
    var gremlinClient = new GremlinClient(gremlinServer);
  2. 執(zhí)行如下命令,配置超時時間為5000毫秒。

    string dsl = "g.V(G___id)";
    Dictionary<string, object> bindings = new Dictionary<string, object> {{"G___id", "sand131_id_5_99"}};
    var msgBuilder = RequestMessage.Build(Tokens.OpsEval).AddArgument(Tokens.ArgsGremlin, dsl)
    .AddArgument(Tokens.ArgsBindings, bindings).AddArgument("scriptEvaluationTimeout", 5000);
  3. 執(zhí)行如下命令,發(fā)送請求至圖數(shù)據(jù)庫GDB服務端。

    await gremlinClient.SubmitAsync<T>(msgBuilder.Create()).ConfigureAwait(false);
  4. 關閉客戶端。

Go

  1. 執(zhí)行如下命令,初始化客戶端。

    settings := &goClient.Settings{
            Host:     host,
            Port:     port,
            Username: username,
            Password: password,
        }
    client := goClient.NewClient(settings)
  2. 執(zhí)行如下命令,配置超時時間為5000毫秒。

    parameters := make(map[string]interface{})
    parameters["G___id"] = "sand131_id_5_99"
    options := graph.NewRequestOptionsWithBindings(bindings)
    options.SetTimeout(5000)
  3. 執(zhí)行如下命令,發(fā)送請求至圖數(shù)據(jù)庫GDB服務端。

    dsl := "g.V(G___id)"
    results, err := client.SubmitScriptOptions(dsl, options)
  4. 執(zhí)行如下命令,關閉客戶端。

    client.Close()

其他方法配置超時時間

Java bytecode

  1. 執(zhí)行如下命令,初始化客戶端。

    Cluster cluster = Cluster.build(new File(yaml)).create();
    Client client = cluster.connect().init();
  2. 執(zhí)行如下命令,配置超時時間為5000毫秒。

    g.with('scriptEvaluationTimeout', 5000).V().limit(1).toList();
  3. 執(zhí)行如下命令,發(fā)送請求至圖數(shù)據(jù)庫GDB服務端。

    List<Vertex> list = g.V().has("person","name","marko").out("knows").toList();
  4. 執(zhí)行如下命令,關閉客戶端。

    cluster.close();

Java 請求超時時間配置

// 1. 初始化客戶端 client

// 2. 配置請求參數(shù),包括超時時間,bindings參數(shù)化
RequestOptions.Builder options = RequestOptions.build().timeout(5000);
options.addParameter("G___id", "sand131_id_5_99");

String dsl = "g.V(G___id)";
// 3. 發(fā)送請求到GDB服務端,同時提供請求的配置
ResultSet results = client.submit(dsl, options.create());

// 4. 結束任務后關閉客戶端 client
說明

將sand131_id_5_99替換為實際請求參數(shù)。

Gremlin-console 請求超時時間配置

:remote config timeout 5000

Python 請求超時時間配置

from gremlin_python.driver.request import RequestMessage

# 1. 初始化客戶端 client

dsl = "g.V(G___id)";
parameters = {}
parameters["G___id"] = "sand131_id_5_99"

# 2. 配置請求,包括超時時間,bindings參數(shù)化,請求語句
message = RequestMessage('', 'eval', {'gremlin': dsl, 'scriptEvaluationTimeout': 5000, 'bindings': parameters})

# 3. 發(fā)送請求到GDB服務端,同時包含有請求的配置
results = client.submit(message).all().result()

# 4. 結束任務后關閉客戶端 client
說明

將sand131_id_5_99替換為實際請求參數(shù)。

.Net 請求超時時間配置

// 1. 初始化客戶端 client

string dsl = "g.V(G___id)";
Dictionary<string, object> bindings = new Dictionary<string, object> {{"G___id", "sand131_id_5_99"}};

// 2. 配置請求,包括超時時間,bindings參數(shù)化,請求語句
var msgBuilder = RequestMessage.Build(Tokens.OpsEval).AddArgument(Tokens.ArgsGremlin, dsl)
        .AddArgument(Tokens.ArgsBindings, bindings).AddArgument("scriptEvaluationTimeout", 5000);

// 3. 發(fā)送請求到GDB服務端,同時包含有請求的配置
await gremlinClient.SubmitAsync<T>(msgBuilder.Create()).ConfigureAwait(false);

// 4. 結束任務后關閉客戶端 client
說明

將sand131_id_5_99替換為實際請求參數(shù)。

Go 請求超時時間配置

import "github.com/aliyun/alibabacloud-gdb-go-sdk/gdbclient/graph"

// 1. 初始化客戶端 client

parameters := make(map[string]interface{})
parameters["G___id"] = "sand131_id_5_99"

// 2. 配置請求參數(shù),包括超時時間,bindings參數(shù)化
options := graph.NewRequestOptionsWithBindings(bindings)
options.SetTimeout(5000)

// 3. 發(fā)送請求到GDB服務端,同時提供請求的配置
dsl := "g.V(G___id)"
results, err := client.SubmitScriptOptions(dsl, options)

// 4. 結束任務后關閉客戶端 client
說明

將sand131_id_5_99替換為實際請求參數(shù)。

bytecode請求超時時間配置

圖數(shù)據(jù)庫支持bytecode請求的超時時間配置,Java 環(huán)境使用如下(其他環(huán)境暫不支持)。

g.with('scriptEvaluationTimeout', 2000).V().limit(1).toList()