Ram qui sature dû à une requête sous nodejs
Bonsoir, j'aimerais savoir si vous avez déjà pu rencontrer ce problème.
En effet, j'ai une application qui tourne en ejs ainsi que node js. La partie node me permet d'avoir une api.
La partie ejs pour le rendu de mes pages. J'effectue une requête toute les 2 secondes :
Code:
1 2 3 4 5 6 7 8 9
|
router.get('/', async (req: Request, res: Response) => {
const instructionsObj = new Instruction(req.app.get('DB'))
const instructions = await instructionsObj.getAll()
const liveIOObj = new Live_IO(req.app.get('DB'))
const livesIO = await liveIOObj.getAll(instructions.ui_Schema.value.value)
res.header('Content-Type', 'application/json')
res.json(livesIO)
}) |
et également :
Code:
1 2 3 4 5 6 7 8 9 10 11
|
function livesValues(down) {
const req = new XMLHttpRequest()
req.open('GET', '/api/live_IO')
req.responseType = 'json'
req.send()
req.onload = function () {
draw(req.response, down)
req.abort()
}
} |
Malheureusement j'ai des process qui tournent sur chrome, rien d'anormal, mais ensuite 3 d'entre eux grossisse, c'est très léger et sa ne se remarque pas sur pc, mais sur une raspberry avec 1go de ram, c'est problématique,
car en une heure environ la ram est saturé et mon application est morte.
Ma requête me renvoie des values sur un schéma et celles-ci sont refresh toutes les deux secondes. Elles sont de type json avec un status 200.
Si l'un d'entre vous a une solution, je suis preneur .
En vous remerciant par avance, je vous souhaite une agréable soirée !
Ram qui sature dû à une requête sous nodejs
Ton indication me semble juste mais bizarre. J'ai une connexion au server basique je dirais :
Dans mon app.ts
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
import express from 'express'
import * as path from 'path'
import cors from 'cors'
import cookieSession from 'cookie-session'
import { connect } from './libraries/Database'
import Session from './middlewares/Session'
import flash from 'express-flash'
import routes from './Controllers'
import config from './config.json'
class App {
public app: express.Application
constructor() {
this.app = express()
this.config()
}
private async config() {
this.app.set('config', config)
this.app.set('DB', await connect(config.mysql))
this.app.set('views', path.join(__dirname, 'views'))
this.app.set('view engine', 'ejs')
this.app.use(express.static(path.join(__dirname, 'public')))
this.app.use(express.urlencoded({ extended: true }))
this.app.use(cors())
this.app.use(
cookieSession({
httpOnly: true,
keys: ['key1', 'key2'],
maxAge: 10 * 60 * 1000,
name: 'session',
})
)
this.app.use(Session)
this.app.use(flash())
this.app.use('/', routes)
}
}
export default new App().app |
puis mon server.ts :
Code:
1 2 3 4 5 6 7 8
|
import app from './app'
const PORT = parseInt(process.env.PORT || '', 10) || 3000
app.listen(PORT, () => {
console.log('ProjetNode listen on port ' + PORT)
}) |
Tu me conseillerais de faire quelques chose de plus basique ou conventionnelle ? (faire tout passer par l'app et réarranger tout ça ?)