Skip to content

Commit fb6623f

Browse files
committed
feat: Provide status messages for `/cubejs-api/v1/run-scheduled-refresh API
1 parent efe2564 commit fb6623f

File tree

3 files changed

+15
-5
lines changed

3 files changed

+15
-5
lines changed

packages/cubejs-api-gateway/index.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -325,8 +325,10 @@ class ApiGateway {
325325
const requestStarted = new Date();
326326
try {
327327
const refreshScheduler = this.refreshScheduler();
328-
await refreshScheduler.runScheduledRefresh(context, this.parseQueryParam(queryingOptions || {}));
329-
res({}); // TODO status
328+
res(await refreshScheduler.runScheduledRefresh(context, {
329+
...this.parseQueryParam(queryingOptions || {}),
330+
throwErrors: true
331+
}));
330332
} catch (e) {
331333
this.handleError({
332334
e, context, res, requestStarted

packages/cubejs-server-core/core/RefreshScheduler.js

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ class RefreshScheduler {
7979

8080
async runScheduledRefresh(context, queryingOptions) {
8181
queryingOptions = { timezone: 'UTC', ...queryingOptions };
82+
const { throwErrors, ...restOptions } = queryingOptions;
8283
context = { requestId: `scheduler-${uuid()}`, ...context };
8384
this.serverCore.logger('Refresh Scheduler Run', {
8485
authInfo: context.authInfo,
@@ -87,9 +88,12 @@ class RefreshScheduler {
8788
try {
8889
const compilerApi = this.serverCore.getCompilerApi(context);
8990
await Promise.all([
90-
this.refreshCubesRefreshKey(context, compilerApi, queryingOptions),
91-
this.refreshPreAggregations(context, compilerApi, queryingOptions)
91+
this.refreshCubesRefreshKey(context, compilerApi, restOptions),
92+
this.refreshPreAggregations(context, compilerApi, restOptions)
9293
]);
94+
return {
95+
finished: true
96+
};
9397
} catch (e) {
9498
if (e.error !== 'Continue wait') {
9599
this.serverCore.logger('Refresh Scheduler Error', {
@@ -98,7 +102,11 @@ class RefreshScheduler {
98102
requestId: context.requestId
99103
});
100104
}
105+
if (throwErrors) {
106+
throw e;
107+
}
101108
}
109+
return { finished: false };
102110
}
103111

104112
async refreshCubesRefreshKey(context, compilerApi, queryingOptions) {

packages/cubejs-server-core/core/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -462,7 +462,7 @@ class CubejsServerCore {
462462

463463
async runScheduledRefresh(context, queryingOptions) {
464464
const scheduler = new RefreshScheduler(this);
465-
await scheduler.runScheduledRefresh(context, queryingOptions);
465+
return scheduler.runScheduledRefresh(context, queryingOptions);
466466
}
467467

468468
async getDriver() {

0 commit comments

Comments
 (0)