Pour autant que je sache, il s'agit d'un stream
, donc il est constamment en streaming des valeurs à la base de données Oracle.fonction de temporisation pour le noeud?
Je me demande si je peux faire une fonction de temporisation pour attendre environ 3 secondes avant d'envoyer à nouveau.
var net = require('net');
var fs = require('fs');
var oracledb = require('oracledb');
var dbConfig = require('./dbconfig.js');
var client = new net.Socket();
client.connect(8080, "192.168.0.7");
console.log("Client most likely connected...");
oracledb.getConnection(
{
user : dbConfig.user,
password : dbConfig.password,
connectString : dbConfig.connectString
},
function(err, connection) {
if (err) {
console.error(err.message);
return;
}
client.on('data', function (data) {
var weight_data = Number(data);
console.log('Data: ' + data);
connection.execute("INSERT INTO UNI_SCRAP_SCALE(WEIGHT) VALUES (:weight)", [weight_data], function (err, result) {
if (err) throw err;
console.log("Rows inserted: " + result.rowsAffected);
console.log('Data received from Db:\n');
console.log(result);
connection.commit(
function (err) {
console.log('Done')
});
});
});
});
});
// client.destroy();
Je mis setTimeout en 3 endroits différents. Si connection.execute se trouvait à l'intérieur du bloc setTimeout, il aurait tort de dire qu'il avait besoin d'un rappel. J'ai donc essayé de le mettre ci-dessous pour les 3 console.logs et il a attendu 3 secondes sur ce code, puis a commencé à s'exécuter comme si setTimeout n'était plus là (je suppose que setTimeout est seulement une chose unique). De toute évidence, Node était un mauvais choix. Peut-être que l'utilisation de prises était un mauvais choix aussi. –