У меня есть экспресс-сервер, который обновляет MySQL DB каждые 60 секунд,
Сервер также получает данные из AWS RDS.
Когда я запускаю сервер, он работает нормально и http://localhost:3100 возвращает
ответ. Но как только функция updateDB вызывается после 60
секунд, местный хост просто продолжает ждать.
Полезно ли обновлять БД, вызывая функцию, которая
фактически вызывая еще три функции в другом модуле. Если не
какое наилучшее из возможных решений.
Что является причиной проблемы и какие изменения я должен внести в код?
server.js
const http = require('http')
const app = require('./app')
const updateDB = require('./updatedb/updateData')
const port = process.env.PORT || 3100
const updateDatabase = () => {
setInterval(() => {
updateDB.updateDB()
}, 60000)
}
updateDatabase()
const server = http.createServer(app);
server.listen(port, () => {
console.log(`Gateway is ready on ${port}`)
})
app.js
const express = require('express')
const cors = require('cors')
const app = express()
const assetRoutes = require('./routes/assetsRoutes')
const exchangesRoutes = require('./routes/exchangeRoutes')
var corsOptions = {
origin: "*",
optionsSuccessStatus: 200 // some legacy browsers (IE11, various SmartTVs) choke on 204
};
app.use('/assets', cors(corsOptions), assetRoutes)
app.use('/exchanges', cors(corsOptions), exchangesRoutes)
module.exports = app;
updateDB.js - этот модуль вызывает на 3 функции больше, чем экспортируется
на server.js и каждые 60 секунд вызывается для обновления БД.
const updateAllTickers = require('../exchanges/quote/updateDB')
const updateCombinedSupply =require('../models/circulatingsupply/combinedcSupplyUpdate')
const updatePriceChangePercentage = require('../models/updatePriceChangePercentage')
const updateDB = () => {
updateAllTickers.updateExchangeTickers()
updateCombinedSupply.updateCombinedSupply()
updatePriceChangePercentage.updatePriceChange()
}
module.exports = ({
updateDB: updateDB
})