我有一个快递服务器,每60秒更新一次MySQL DB, 服务器还从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
})