From 456ad8e187bde4978177452a8380d25eabde5f83 Mon Sep 17 00:00:00 2001 From: Xiao Gui <xgui3783@gmail.com> Date: Wed, 11 Nov 2020 15:53:41 +0100 Subject: [PATCH] feat: add dataset init ready flag --- deploy/app.js | 4 +++- deploy/datasets/index.js | 13 +++++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/deploy/app.js b/deploy/app.js index a07d5438a..d83356e4e 100644 --- a/deploy/app.js +++ b/deploy/app.js @@ -8,6 +8,7 @@ const crypto = require('crypto') const cookieParser = require('cookie-parser') const { router: regionalFeaturesRouter, regionalFeatureIsReady } = require('./regionalFeatures') +const { router: datasetRouter, ready: datasetRouteIsReady } = require('./datasets') const LOCAL_CDN_FLAG = !!process.env.PRECOMPUTED_SERVER @@ -167,9 +168,11 @@ app.use('/logo', require('./logo')) app.get('/ready', async (req, res) => { const authIsReady = await authReady() const regionalFeatureReady = await regionalFeatureIsReady() + const datasetReady = await datasetRouteIsReady() const allReady = [ authIsReady, regionalFeatureReady, + datasetReady, /** * add other ready endpoints here * call sig is await fn(): boolean @@ -205,7 +208,6 @@ const jsonMiddleware = (req, res, next) => { const atlasesRouter = require('./atlas') const templateRouter = require('./templates') const nehubaConfigRouter = require('./nehubaConfig') -const datasetRouter = require('./datasets') const pluginRouter = require('./plugins') const previewRouter = require('./preview') diff --git a/deploy/datasets/index.js b/deploy/datasets/index.js index 502a4c350..b5aa755c5 100644 --- a/deploy/datasets/index.js +++ b/deploy/datasets/index.js @@ -15,13 +15,19 @@ const bodyParser = require('body-parser') datasetsRouter.use(bodyParser.urlencoded({ extended: false })) datasetsRouter.use(bodyParser.json()) +let readyFlag = false init() - .then(() => console.log(`dataset init success`)) + .then(() => { + console.log(`dataset init success`) + readyFlag = true + }) .catch(e => { console.warn(`dataset init failed`, e) retry(() => init()) }) +const ready = async () => readyFlag + const cacheMaxAge24Hr = (_req, res, next) => { const oneDay = 24 * 60 * 60 res.setHeader('Cache-Control', `max-age=${oneDay}`) @@ -243,4 +249,7 @@ datasetsRouter.post('/bulkDownloadKgFiles', bodyParser.urlencoded({ extended: fa } }) -module.exports = datasetsRouter +module.exports = { + router: datasetsRouter, + ready +} -- GitLab