Skip to content

Commit 86e3c86

Browse files
committed
Scheduler in progress
1 parent b58738e commit 86e3c86

34 files changed

Lines changed: 4152 additions & 124 deletions

exec/java-exec/src/main/java/org/apache/drill/exec/server/Drillbit.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import org.apache.curator.framework.api.ACLProvider;
2121
import org.apache.curator.utils.ZKPaths;
2222
import org.apache.drill.common.AutoCloseables;
23+
import org.apache.drill.exec.server.rest.ScheduleManager;
2324
import org.apache.drill.common.StackTrace;
2425
import org.apache.drill.common.concurrent.ExtendedLatch;
2526
import org.apache.drill.common.config.DrillConfig;
@@ -233,6 +234,16 @@ public void run() throws Exception {
233234
javaPropertiesToSystemOptions();
234235
manager.getContext().getRemoteFunctionRegistry().init(context.getConfig(), storeProvider, coord);
235236
webServer.start();
237+
238+
// Start the SQL Lab scheduled query manager.
239+
// Runs on a background daemon thread, checking every 60 seconds for due queries.
240+
try {
241+
ScheduleManager.getOrCreate(manager, storeProvider).start();
242+
logger.info("ScheduleManager started for SQL Lab scheduled queries");
243+
} catch (Exception e) {
244+
logger.warn("Failed to start ScheduleManager (scheduled queries will not run): {}", e.getMessage());
245+
}
246+
236247
//Discovering HTTP port (in case of port hunting)
237248
int httpPort = -1;
238249
if (webServer.isRunning()) {
@@ -317,6 +328,7 @@ public synchronized void close() {
317328

318329
try {
319330
AutoCloseables.close(
331+
ScheduleManager.getInstance(),
320332
webServer,
321333
engine,
322334
storeProvider,

exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/DrillRestServer.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,8 +113,11 @@ public DrillRestServer(final WorkManager workManager, final ServletContext servl
113113
register(NotebookResources.class);
114114
register(ResultCacheResources.class);
115115
register(ProfileConfigResources.class);
116+
register(UserResources.class);
117+
register(WorkflowConfigResources.class);
118+
register(ScheduleResources.class);
116119

117-
logger.info("Registered {} resource classes", 23);
120+
logger.info("Registered {} resource classes", 26);
118121

119122
property(FreemarkerMvcFeature.TEMPLATE_OBJECT_FACTORY, getFreemarkerConfiguration(servletContext));
120123
register(FreemarkerMvcFeature.class);

0 commit comments

Comments
 (0)