public static SqlTask createSqlTask( TaskId taskId, URI location, String nodeId, QueryContext queryContext, SqlTaskExecutionFactory sqlTaskExecutionFactory, ExecutorService taskNotificationExecutor, Function<SqlTask, ?> onDone, DataSize maxBufferSize, CounterStat failedTasks) { SqlTask sqlTask = new SqlTask(taskId, location, nodeId, queryContext, sqlTaskExecutionFactory, taskNotificationExecutor, maxBufferSize); sqlTask.initialize(onDone, failedTasks); return sqlTask; }
final ExecutorService executor = Executors.newCachedThreadPool(); final Future<ResultSet> futureResult1 = executor.submit (new SqlTask("SELECT * FROM table1")); final Future<ResultSet> futureResult2 = executor.submit(new SqlTask("SELECT * FROM table2")); final Future<ResultSet> futureResult3 = executor.submit(new SqlTask("SELECT * FROM table3")); final ResultSet result1 = futureResult1.get(); final ResultSet result2 = futureResult2.get(); final ResultSet result3 = futureResult3.get();
@Override public SqlTask load(TaskId taskId) throws Exception { return new SqlTask( taskId, locationFactory.createLocalTaskLocation(taskId), queryContexts.getUnchecked(taskId.getQueryId()), sqlTaskExecutionFactory, taskNotificationExecutor, sqlTask -> { finishedTaskStats.merge(sqlTask.getIoStats()); return null; }, maxBufferSize ); } });
public SqlTask createInitialTask() { TaskId taskId = new TaskId("query", "stage", "task" + nextTaskId.incrementAndGet()); URI location = URI.create("fake://task/" + taskId); return new SqlTask( taskId, location, new QueryContext(new QueryId("query"), new DataSize(1, MEGABYTE), new MemoryPool(new MemoryPoolId("test"), new DataSize(1, GIGABYTE)), new MemoryPool(new MemoryPoolId("testSystem"), new DataSize(1, GIGABYTE)), taskNotificationExecutor), sqlTaskExecutionFactory, taskNotificationExecutor, Functions.<SqlTask>identity(), new DataSize(32, MEGABYTE)); } }