Cette section présente les méthodes d'un objet Connection
pour gérer les processus dans l'instance et les tâches 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, sauf les algorithmes exécutés avec la méthode write()
, sont exécutées en tant que processus. Les résultats de ces processus sont renvoyés au client une fois terminés et ne sont pas stockés.
top()
Récupère tous les processus en cours d'exécution et d'arrêt de l'instance.
Paramètres :
RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retourne :
List<Process>
: La liste de tous les processus dans l'instance.
// Récupère tous les processus en cours d'exécution et d'arrêt de l'instance
List<Process> processList = client.top();
for (Process process : processList) {
System.out.println(process.getProcessId() + " " + process.getProcessUql());
}
a_0_539_2 n({_uuid > 300}).e()[:3].n() as p RETURN p{*} LIMIT 500
kill()
Arrête les processus en cours d'exécution dans l'instance.
Paramètres :
String
: ID du processus à arrêter ; défini sur*
pour arrêter tous les processus.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retourne :
Response
: Résultat de la requête.
// Récupère tous les processus en cours d'exécution et d'arrêt de l'instance et les arrête tous
List<Process> processList = client.top();
for (Process process : processList) {
System.out.println(process.getProcessId() + " " + process.getProcessUql());
}
Response response = client.kill("*");
System.out.println(response.getStatus().getErrorCode());
a_0_540_2 n({_uuid > 300}).e()[:3].n() as p RETURN p{*} LIMIT 500
SUCCESS
Tâche
Les algorithmes exécutés avec la méthode write()
sont exécutés en tant que tâches. Ces tâches sont stockées dans le graphset contre lequel elles sont exécutées jusqu'à leur suppression.
showTask()
Récupère les tâches du graphset actuel.
Paramètres :
ShowTask
(Optionnel) : Configurations pour la tâche à récupérer, incluantid:String
,name:String
etstatus:TaskStatus
(id
a la priorité lorsqueid
etname
sont tous deux définis); si ignoré, toutes les tâches sont récupérées.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retourne :
List<Task>
: La liste de toutes les tâches dans le graphset.
RequestConfig requestConfig = new RequestConfig();
requestConfig.setGraphName("miniCircle");
// Exécute un algorithme en tant que tâche dans le graphset 'miniCircle'
Response response = client.uql("algo(degree).params({order: 'desc'}).write({file:{filename: 'degree_all'}})", requestConfig);
String taskID = (String) response.alias("_task").asTable().getRows().get(0).get(0);
Thread.sleep(3000);
// Récupère la tâche ci-dessus
ShowTask showTask = new ShowTask();
showTask.setId(taskID);
//showTask.setName("degree");
showTask.setStatus(TaskStatus.DONE);
List<Task> taskList = client.showTask(showTask, requestConfig);
for (Task task : taskList) {
System.out.println("Task ID: " + task.getTaskInfo().getTaskId());
System.out.println("Server ID: " + task.getTaskInfo().getServerId());
System.out.println("Algo Name: " + task.getTaskInfo().getAlgoName());
System.out.println("Task Params: " + task.getParam().toString());
System.out.println("Task Result: " + task.getResult().toString());
}
Task ID: 54240
Server ID: 3
Algo Name: degree
Task Params: {order=desc}
Task Result: {total_degree=590.000000, avarage_degree=1.940789, result_files=degree_all}
clearTask()
Efface (Supprime) les tâches du graphset actuel. Les tâches ayant le statut COMPUTING
et WRITING
ne peuvent pas être effacées.
Paramètres :
ClearTask
(Optionnel) : Configurations pour la tâche à effacer, incluantid:Integer
,name:String
etstatus:TaskStatus
(id
a la priorité lorsqueid
etname
sont tous deux définis); si ignoré, toutes les tâches sont effacées.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retourne :
Response
: Résultat de la requête.
RequestConfig requestConfig = new RequestConfig();
requestConfig.setGraphName("miniCircle");
// Exécute un algorithme en tant que tâche dans le graphset 'miniCircle'
Response response = client.uql("algo(degree).params({order: 'desc'}).write({file:{filename: 'degree_all'}})", requestConfig);
String id = (String) response.alias("_task").asTable().getRows().get(0).get(0);
Integer taskID = Integer.parseInt(id);
Thread.sleep(3000);
// Efface la tâche ci-dessus
ClearTask clearTask = new ClearTask();
clearTask.setId(taskID);
//clearTask.setName("degree");
clearTask.setStatus(TaskStatus.DONE);
Response response1 = client.clearTask(clearTask, requestConfig);
System.out.println("Task " + taskID + " cleared: " + response1.getStatus().getErrorCode());
Task 54242 cleared: SUCCESS
stopTask()
Arrête les tâches dont le statut est COMPUTING
dans le graphset actuel.
Paramètres :
String
: ID de la tâche à arrêter ; défini sur*
pour arrêter toutes les tâches.RequestConfig
(Optionnel) : Paramètres de configuration pour la requête.
Retourne :
Response
: Résultat de la requête.
RequestConfig requestConfig = new RequestConfig();
requestConfig.setGraphName("Ad_Click");
// Exécute un algorithme en tant que tâche dans le graphset 'Ad_Click'
Response response = client.uql("algo(louvain).params({phase1_loop_num: 20, min_modularity_increase: 0.001}).write({file:{filename_community_id: 'communityID'}})", requestConfig);
String taskId = (String) response.get(0).asTable().getRows().get(0).get(0);
// Arrête la tâche ci-dessus et imprime le code erreur
Response response1 = client.stopTask(taskId, requestConfig);
System.out.println("Task " + taskId + " stopped: " + response1.getStatus().getErrorCode());
// Récupère la tâche arrêtée ci-dessus
ShowTask showTask = new ShowTask();
showTask.setId(taskId);
showTask.setStatus(TaskStatus.STOP);
Thread.sleep(3000);
List<Task> taskList = client.showTask(showTask, requestConfig);
for (Task task : taskList) {
System.out.println("Task ID: " + task.getTaskInfo().getTaskId());
System.out.println("Server ID: " + task.getTaskInfo().getServerId());
System.out.println("Algo Name: " + task.getTaskInfo().getAlgoName());
System.out.println("Task Params: " + task.getParam().toString());
System.out.println("Task Result: " + task.getResult().toString());
}
Task 54248 stopped: SUCCESS
Task ID: 54248
Server ID: 3
Algo Name: louvain
Task Params: {phase1_loop_num=20, min_modularity_increase=0.001}
Task Result: {community_count=1228589, modularity=0.647601}
Exemple Complet
package com.ultipa.www.sdk.api;
import com.ultipa.sdk.connect.Connection;
import com.ultipa.sdk.connect.conf.RequestConfig;
import com.ultipa.sdk.connect.conf.UltipaConfiguration;
import com.ultipa.sdk.connect.driver.UltipaClientDriver;
import com.ultipa.sdk.connect.request.ShowTask;
import com.ultipa.sdk.operate.entity.*;
import com.ultipa.sdk.operate.enums.TaskStatus;
import com.ultipa.sdk.operate.response.Response;
import java.util.List;
public class Main {
public static void main(String[] args) {
// Configurations de connexion
UltipaConfiguration myConfig = UltipaConfiguration.config()
// URI exemple : .hosts("mqj4zouys.us-east-1.cloud.ultipa.com:60010")
.hosts("192.168.1.85:60611,192.168.1.87:60611,192.168.1.88:60611")
.username("<username>")
.password("<password>");
UltipaClientDriver driver = null;
try {
// Établit une connexion à la base de données
driver = new UltipaClientDriver(myConfig);
Connection client = driver.getConnection();
Thread.sleep(3000);
RequestConfig requestConfig = new RequestConfig();
requestConfig.setGraphName("miniCircle");
// Exécute un algorithme en tant que tâche dans le graphset 'miniCircle'
Response response = client.uql("algo(degree).params({order: 'desc'}).write({file:{filename: 'degree_all'}})", requestConfig);
String taskID = (String) response.alias("_task").asTable().getRows().get(0).get(0);
Thread.sleep(3000);
// Récupère la tâche ci-dessus
ShowTask showTask = new ShowTask();
showTask.setId(taskID);
//showTask.setName("degree");
showTask.setStatus(TaskStatus.DONE);
List<Task> taskList = client.showTask(showTask, requestConfig);
for (Task task : taskList) {
System.out.println("Task ID: " + task.getTaskInfo().getTaskId());
System.out.println("Server ID: " + task.getTaskInfo().getServerId());
System.out.println("Algo Name: " + task.getTaskInfo().getAlgoName());
System.out.println("Task Params: " + task.getParam().toString());
System.out.println("Task Result: " + task.getResult().toString());
}
} catch (InterruptedException e) {
throw new RuntimeException(e);
} finally {
if (driver != null) {
driver.close();
}
}
}
}