IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

NodeJS Discussion :

Ram qui sature dû à une requête sous nodejs


Sujet :

NodeJS

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2018
    Messages : 28
    Points : 28
    Points
    28
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 !

  2. #2
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 360
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 360
    Points : 20 378
    Points
    20 378
    Par défaut
    bonjour je pense que le problème c'est que vous ouvrez une connection serveur, ça boucle indéfiniment parce que le framework doit créer des tas de threads donc il faut mieux gérer la connection

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2018
    Messages : 28
    Points : 28
    Points
    28
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 ?)

Discussions similaires

  1. Comment afficher le rang des résultats d'une requête sous Access 2002
    Par painpepper dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 15/08/2007, 01h19
  2. Fonction javascript qui marche qu'une fois sous Firefox
    Par ns_deux dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 30/08/2006, 10h38
  3. Récupération d'une requête sous forme de tableau
    Par le--handballeur dans le forum iReport
    Réponses: 2
    Dernier message: 01/08/2006, 15h56
  4. Afficher le resultat de l'execution d'une requête sous forme d'un formulaire
    Par samirdannoune dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 26/07/2006, 18h21
  5. Types de données incompatibles lors d'une requête sous access
    Par RodEpsi dans le forum Bases de données
    Réponses: 32
    Dernier message: 21/07/2006, 15h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo