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());
}
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);
}
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);
}
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());
}
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);
}
Aggregations