Search in sources :

Example 11 with Task

use of com.baidu.hugegraph.structure.Task in project incubator-hugegraph-toolchain by apache.

the class VertexLabelTest method testRemoveVertexLabelASync.

@Test
public void testRemoveVertexLabelASync() {
    SchemaManager schema = schema();
    schema.vertexLabel("player").properties("name").create();
    // Remove vertex label async and wait
    long taskId = schema.removeVertexLabelAsync("player");
    Task task = task().waitUntilTaskCompleted(taskId, 10);
    Assert.assertTrue(task.completed());
}
Also used : Task(com.baidu.hugegraph.structure.Task) SchemaManager(com.baidu.hugegraph.driver.SchemaManager) Test(org.junit.Test)

Example 12 with Task

use of com.baidu.hugegraph.structure.Task in project incubator-hugegraph-toolchain by apache.

the class TaskApiTest method testGet.

@Test
public void testGet() {
    IndexLabel personByCity = schema().getIndexLabel("personByCity");
    long taskId = rebuildAPI.rebuild(personByCity);
    Task task = taskAPI.get(taskId);
    Assert.assertNotNull(task);
    Assert.assertEquals(taskId, task.id());
    waitUntilTaskCompleted(taskId);
}
Also used : Task(com.baidu.hugegraph.structure.Task) IndexLabel(com.baidu.hugegraph.structure.schema.IndexLabel) Test(org.junit.Test)

Example 13 with Task

use of com.baidu.hugegraph.structure.Task in project incubator-hugegraph-toolchain by apache.

the class TaskApiTest method testCancel.

@Test
public void testCancel() {
    schema().vertexLabel("man").useAutomaticId().ifNotExist().create();
    String groovy = "for (int i = 0; i < 10; i++) {" + "hugegraph.addVertex(T.label, 'man');" + "hugegraph.tx().commit();" + "}";
    // Insert 10 records in sync mode
    GremlinRequest request = new GremlinRequest(groovy);
    gremlin().execute(request);
    // Verify insertion takes effect
    groovy = "g.V()";
    request = new GremlinRequest(groovy);
    ResultSet resultSet = gremlin().execute(request);
    Assert.assertEquals(10, resultSet.size());
    // Delete to prepare for insertion in async mode
    groovy = "g.V().drop()";
    request = new GremlinRequest(groovy);
    gremlin().execute(request);
    /*
         * The asyn task scripts need to be able to handle interrupts,
         * otherwise they cannot be cancelled
         */
    groovy = "for (int i = 0; i < 10; i++) {" + "hugegraph.addVertex(T.label, 'man');" + "hugegraph.tx().commit();" + "try {" + "sleep(1000);" + "} catch (InterruptedException e) {" + "break;" + "}" + "}";
    request = new GremlinRequest(groovy);
    long taskId = gremlin().executeAsTask(request);
    groovy = "g.V()";
    request = new GremlinRequest(groovy);
    // Wait async task running
    while (true) {
        resultSet = gremlin().execute(request);
        if (resultSet.size() > 0) {
            break;
        } else {
            try {
                Thread.sleep(1000);
            } catch (InterruptedException ignored) {
            }
        }
    }
    // Cancel async task
    Task task = taskAPI.cancel(taskId);
    Assert.assertTrue(task.cancelling());
    try {
        Thread.sleep(1000L);
    } catch (InterruptedException e) {
    // ignored
    }
    task = taskAPI.get(taskId);
    Assert.assertTrue(task.cancelled());
    resultSet = gremlin().execute(request);
    Assert.assertTrue(resultSet.size() < 10);
}
Also used : Task(com.baidu.hugegraph.structure.Task) ResultSet(com.baidu.hugegraph.structure.gremlin.ResultSet) GremlinRequest(com.baidu.hugegraph.api.gremlin.GremlinRequest) Test(org.junit.Test)

Example 14 with Task

use of com.baidu.hugegraph.structure.Task in project incubator-hugegraph-toolchain by apache.

the class TaskApiTest method testListAll.

@Test
public void testListAll() {
    IndexLabel personByCity = schema().getIndexLabel("personByCity");
    IndexLabel personByAge = schema().getIndexLabel("personByAge");
    IndexLabel knowsByDate = schema().getIndexLabel("knowsByDate");
    IndexLabel createdByDate = schema().getIndexLabel("createdByDate");
    Set<Long> taskIds = new HashSet<>();
    taskIds.add(rebuildAPI.rebuild(personByCity));
    taskIds.add(rebuildAPI.rebuild(personByAge));
    taskIds.add(rebuildAPI.rebuild(knowsByDate));
    taskIds.add(rebuildAPI.rebuild(createdByDate));
    List<Task> tasks = taskAPI.list(null, -1);
    Assert.assertEquals(4, tasks.size());
    Set<Long> listedTaskIds = new HashSet<>();
    for (Task task : tasks) {
        listedTaskIds.add(task.id());
    }
    Assert.assertEquals(taskIds.size(), listedTaskIds.size());
    Assert.assertTrue(taskIds.containsAll(listedTaskIds));
    taskIds.forEach(BaseApiTest::waitUntilTaskCompleted);
    taskIds.forEach(id -> taskAPI.delete(id));
    tasks = taskAPI.list(null, -1);
    Assert.assertEquals(0, tasks.size());
}
Also used : Task(com.baidu.hugegraph.structure.Task) IndexLabel(com.baidu.hugegraph.structure.schema.IndexLabel) HashSet(java.util.HashSet) Test(org.junit.Test)

Example 15 with Task

use of com.baidu.hugegraph.structure.Task in project incubator-hugegraph-toolchain by apache.

the class JobApiTest method testRebuildIndexLabel.

@Test
public void testRebuildIndexLabel() {
    IndexLabel personByCity = schema().getIndexLabel("personByAge");
    long taskId = rebuildAPI.rebuild(personByCity);
    Task task = taskAPI.get(taskId);
    Assert.assertNotNull(task);
    Assert.assertEquals(taskId, task.id());
    waitUntilTaskCompleted(taskId);
}
Also used : Task(com.baidu.hugegraph.structure.Task) IndexLabel(com.baidu.hugegraph.structure.schema.IndexLabel) Test(org.junit.Test)

Aggregations

Task (com.baidu.hugegraph.structure.Task)18 Test (org.junit.Test)12 IndexLabel (com.baidu.hugegraph.structure.schema.IndexLabel)7 HashSet (java.util.HashSet)4 HugeClient (com.baidu.hugegraph.driver.HugeClient)3 ArrayList (java.util.ArrayList)3 SchemaManager (com.baidu.hugegraph.driver.SchemaManager)2 ExecuteHistory (com.baidu.hugegraph.entity.query.ExecuteHistory)2 InternalException (com.baidu.hugegraph.exception.InternalException)2 ResultSet (com.baidu.hugegraph.structure.gremlin.ResultSet)2 EdgeLabel (com.baidu.hugegraph.structure.schema.EdgeLabel)2 GremlinRequest (com.baidu.hugegraph.api.gremlin.GremlinRequest)1 TaskAPI (com.baidu.hugegraph.api.task.TaskAPI)1 TasksWithPage (com.baidu.hugegraph.api.task.TasksWithPage)1 ExternalException (com.baidu.hugegraph.exception.ExternalException)1 AuthBackupRestoreManager (com.baidu.hugegraph.manager.AuthBackupRestoreManager)1 BackupManager (com.baidu.hugegraph.manager.BackupManager)1 DumpGraphManager (com.baidu.hugegraph.manager.DumpGraphManager)1 GraphsManager (com.baidu.hugegraph.manager.GraphsManager)1 GremlinManager (com.baidu.hugegraph.manager.GremlinManager)1