Change Password

Please enter the password.
Please enter the password. Between 8-64 characters. Not identical to your email address. Contain at least 3 of: uppercase, lowercase, numbers, and special characters.
Please enter the password.
Submit

Change Nickname

Current Nickname:
Submit

Apply New License

License Detail

Please complete this required field.

  • Ultipa Graph V4

Standalone

Please complete this required field.

Please complete this required field.

The MAC address of the server you want to deploy.

Please complete this required field.

Please complete this required field.

Cancel
Apply
ID
Product
Status
Cores
Applied Validity Period(days)
Effective Date
Excpired Date
Mac Address
Apply Comment
Review Comment
Close
Profile
  • Full Name:
  • Phone:
  • Company:
  • Company Email:
  • Country:
  • Language:
Change Password
Apply

You have no license application record.

Apply
Certificate Issued at Valid until Serial No. File
Serial No. Valid until File

Not having one? Apply now! >>>

Product Created On ID Amount (USD) Invoice
Product Created On ID Amount (USD) Invoice

No Invoice

v4.5
Search
    Français
    v4.5

      Gestion des Processus et des Tâches

      Cette section présente des méthodes sur un objet Connection pour gérer les processes dans l'instance et les tasks dans le graphset actuel.

      Chaque exemple se concentre uniquement sur l'utilisation de la méthode. Pour un exemple de code complet, veuillez vous référer à l'Exemple Complet.

      Process

      Toutes les requêtes UQL, à l'exception des algorithmes exécutés avec la méthode write(), sont exécutées en tant que processes. Les résultats de ces processes sont renvoyés au client une fois terminés et ne sont pas stockés.

      top()

      Récupère tous les processes en cours d'exécution et en arrêt de l'instance.

      Paramètres :

      • RequestConfig (Optionnel) : Paramètres de configuration pour la requête.

      Retourne :

      • Response : La liste de tous les processes dans l'instance.

      // Récupère tous les processes en cours d'exécution et en arrêt dans l'instance
      
      let resp = await conn.top();
      console.log(resp.data);
      

      [
        {
          process_id: 'a_0_1519_2',
          status: 'RUNNING',
          process_uql: 'n().e().n().e().n().e().n() as p return count(p)',
          duration: '7'
        }
      ]
      

      kill()

      Met fin aux processes en cours d'exécution dans l'instance.

      Paramètres :

      • string (Optionnel) : ID du process à terminer ; mettre * pour arrêter tous les processes.
      • boolean (Optionnel) : Définir sur true pour ignorer l'ID du process et arrêter tous les processes.
      • RequestConfig (Optionnel) : Paramètres de configuration pour la requête.

      Retourne :

      • Response : Résultat de la requête.

      // Récupère tous les processes en cours d'exécution et en arrêt dans l'instance et les arrête tous
      
      let resp1 = await conn.top();
      let processList = resp1.data.map((item) => [
        item.process_id,
        item.process_uql,
      ]);
      console.log(processList);
      
      let resp = await conn.kill("*");
      console.log(resp.status.code_desc);
      

      [
        [ 'a_2_1542_2', 'n().e().n().e().n().e().n() as p return count(p)' ],
        [ 'a_6_1597_2', 'n().e().n().e().n()as p return count(p)' ]
      ]
      SUCCESS
      

      Task

      Les algorithmes exécutés avec la méthode write() sont exécutés en tant que tasks. Ces tasks sont stockées dans le graphset contre lequel elles sont exécutées jusqu'à leur suppression.

      showTask()

      Récupère les tasks du graphset actuel.

      Paramètres :

      • string (Optionnel) : Nom de l'algorithme ou ID de la task à récupérer.
      • RequestType.TASK_STATUS (Optionnel) : Statut de la task.
      • RequestConfig (Optionnel) : Paramètres de configuration pour la requête.

      Retourne :

      • Task[] : La liste de toutes les tasks dans le graphset.

      let requestConfig = <RequestType.RequestConfig>{
        useMaster: true,
        graphSetName: "miniCircle",
      };
      
      // Exécute un algorithme en tant que task dans le graphset 'miniCircle'
      
      let algoTest = await conn.uql(
        "algo(degree).params({order: 'desc'}).write({file:{filename: 'degree_all'}})",
        requestConfig
      );
      
      // Récupère la task ci-dessus et montre les informations de la task
      
      let taskInfo = algoTest.data?.get(0).asTable();
      let taskId = taskInfo.getRows()[0][0];
      
      await sleep(3000);
      
      let resp = await conn.showTask(
        taskId,
        RequestType.TASK_STATUS.TASK_DONE,
        requestConfig
      );
      console.log("Task ID: ", taskId);
      console.log(
        "Algo name: ",
        resp.data.map((item) => item.task_info.algo_name)
      );
      console.log(
        "Task result: ",
        resp.data.map((item) => item.result)
      );
      

      Task ID:  54252
      Algo Name:  degree
      Task Result:  {
        total_degree: '591.000000',
        avarage_degree: '1.944079',
        result_files: 'degree_all'
      }
      

      clearTask()

      Efface (Supprime) des tasks du graphset actuel. Les tasks avec le statut COMPUTING et WRITING ne peuvent pas être effacées.

      Paramètres :

      • string (Optionnel) : Nom de l'algorithme ou ID de la task à récupérer.
      • RequestType.TASK_STATUS (Optionnel) : Statut de la task.
      • RequestConfig (Optionnel) : Paramètres de configuration pour la requête.

      Retourne :

      • Response : Résultat de la requête.

      let requestConfig = <RequestType.RequestConfig>{
        useMaster: true,
        graphSetName: "miniCircle",
      };
      
      // Exécute un algorithme en tant que task dans le graphset 'miniCircle'
      
      let algoTest = await conn.uql(
        "algo(degree).params({order: 'desc'}).write({file:{filename: 'degree_all'}})",
        requestConfig
      );
      
      // Efface la task ci-dessus et affiche le code d'erreur
      
      let taskInfo = algoTest.data?.get(0).asTable();
      let taskId = taskInfo.getRows()[0][0];
      
      let resp = await conn.clearTask(
        taskId,
        RequestType.TASK_STATUS.TASK_DONE,
        requestConfig
      );
      console.log("Task ID: ", taskId);
      console.log("Task cleared: ", resp.status.code_desc);
      

      Task ID:  60451
      Task cleared:  SUCCESS
      

      stopTask()

      Arrête les tasks dont le statut est COMPUTING dans le graphset actuel.

      Paramètres :

      • string ou number : ID de la task à arrêter; mettre * pour arrêter toutes les tasks.
      • RequestConfig (Optionnel) : Paramètres de configuration pour la requête.

      Retourne :

      • Response : Résultat de la requête.

      let requestConfig = <RequestType.RequestConfig>{
        useMaster: true,
        graphSetName: "miniCircle",
      };
      
      // Exécute un algorithme en tant que task dans le graphset 'miniCircle'
      
      let algoTest = await conn.uql(
        "algo(louvain).params({phase1_loop_num: 20, min_modularity_increase: 0.001}).write({file:{filename_community_id: 'communityID'}})",
        requestConfig
      );
      
      // Arrête la task ci-dessus et affiche le code d'erreur
      
      let taskInfo = algoTest.data?.get(0).asTable();
      let taskId = taskInfo.getRows()[0][0];
      
      let stopTask = await conn.stopTask(taskId, requestConfig);
      
      console.log("Task ID: ", taskId);
      console.log("Task stopped: ", resp.status.code_desc);
      
      // Récupère la task ci-dessus arrêtée
      
      let resp = await conn.showTask(
        taskId,
        RequestType.TASK_STATUS.TASK_STOPPED,
        requestConfig
      );
      
      console.log(
        "Algo name: ",
        resp.data.map((item) => item.task_info.algo_name)
      );
      console.log(
        "Task result: ",
        resp.data.map((item) => item.result)
      );
      

      Task ID:  60495
      Task stopped:  SUCCESS
      Algo name:  [ 'louvain' ]
      Task result:  [ { community_count: '11', modularity: '0.533843' } ]
      

      Exemple Complet

      import { ConnectionPool, ULTIPA } from "@ultipa-graph/ultipa-node-sdk";
      import { GraphExra } from "@ultipa-graph/ultipa-node-sdk/dist/connection/extra/graph.extra";
      import { getEdgesPrintInfo } from "@ultipa-graph/ultipa-node-sdk/dist/printers/edge";
      import { RequestType } from "@ultipa-graph/ultipa-node-sdk/dist/types";
      import { ListFormat } from "typescript";
      
      let sdkUsage = async () => {
        // Connection configurations
        //URI example: hosts="mqj4zouys.us-east-1.cloud.ultipa.com:60010"
        let hosts = [
          "192.168.1.85:60061",
          "192.168.1.86:60061",
          "192.168.1.87:60061",
        ];
        let username = "***";
        let password = "***";
        let connPool = new ConnectionPool(hosts, username, password);
      
        // Etablit la connexion à la base de données
        let conn = await connPool.getActive();
        let isSuccess = await conn.test();
        console.log(isSuccess);
      
        // Configurations de la requête
        let requestConfig = <RequestType.RequestConfig>{
          graphSetName: "miniCircle",
          useMaster: true,
        };
      
        // Exécute un algorithme en tant que task dans le graphset 'miniCircle'
        
        let algoTest = await conn.uql(
        "algo(louvain).params({phase1_loop_num: 20, min_modularity_increase: 0.001}).write({file:{filename_community_id: 'communityID'}})",
        requestConfig
      );
       // Récupère la task ci-dessus
        let taskInfo = algoTest.data?.get(0).asTable();
        let taskId = taskInfo.getRows()[0][0];
        
        let resp = await conn.showTask(
          taskId,
          RequestType.TASK_STATUS.TASK_DONE,
          requestConfig
        );
      
        console.log(
          "Algo name: ",
          resp.data.map((item) => item.task_info.algo_name)
        );
        console.log(
          "Task result: ",
          resp.data.map((item) => item.result)
        );    
      };
      
      sdkUsage().then(console.log).catch(console.log);
      
      Please complete the following information to download this book
      *
      公司名称不能为空
      *
      公司邮箱必须填写
      *
      你的名字必须填写
      *
      你的电话必须填写