applay-utils 1.9.2 → 1.9.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "applay-utils",
3
- "version": "1.9.2",
3
+ "version": "1.9.4",
4
4
  "description": "Utilitary tools for Applay applications",
5
5
  "scripts": {
6
6
  "build": "npm version patch",
package/utils/mdb.js CHANGED
@@ -69,7 +69,12 @@ var connect = (alias, url, callback, onError) => {
69
69
  console.log('===============>>>>>>> NOVO POOL DE CONEXÃO MDB ', url, alias);
70
70
 
71
71
  const separator = url.includes('?') ? '&' : '/?';
72
- const uriparams = `${separator}appName=${alias}&minPoolSize=2&maxPoolSize=10&maxIdleTimeMS=30000&serverSelectionTimeoutMS=5000`;
72
+ // maxIdleTimeMS baixo (30s) fazia o pool destruir e recriar as conexões
73
+ // mínimas (minPoolSize) a cada ~30s, 24h/dia, mesmo sem tráfego — gerando
74
+ // uma quantidade enorme de eventos NETWORK de conexão/handshake no log do
75
+ // mongod (centenas de MB/dia). 10 minutos mantém o benefício de conexões
76
+ // "quentes" sem esse churn constante.
77
+ const uriparams = `${separator}appName=${alias}&minPoolSize=2&maxPoolSize=10&maxIdleTimeMS=600000&serverSelectionTimeoutMS=5000`;
73
78
 
74
79
  registerShutdownHandlersOnce();
75
80
 
package/utils/querys.js CHANGED
@@ -60,10 +60,19 @@ var querys = {
60
60
  'aggregatePython': (db, collection, pipe, options) => new Promise(resolve => db.collection(collection).aggregate(pipe, { allowDiskUse: true, ...options }).toArray((err, result) => resolve(result))),
61
61
  'deleteMany': (db, collection, filter) => new Promise(resolve => db.collection(collection).deleteMany(filter, (err, result) => resolve(result))),
62
62
  'deleteOne': (db, collection, filter) => new Promise((resolve, reject) => { db.collection(collection).deleteOne(filter, (err, result) => { if (err) { reject(err); } else { resolve(result); } }); }),
63
- 'saveAsync': (db, collection, dataOrItem, user) => new Promise(resolve => {
63
+ // Em erro de bulkWrite, rejeita (em vez de resolver com {status:false,err})
64
+ // de propósito: a maioria dos chamadores não confere o retorno antes de
65
+ // seguir em frente (fire-and-forget), então resolver a promise faria o
66
+ // código continuar como se o save tivesse funcionado — uma falha real
67
+ // (ex: failover de replica set) passaria batido, silenciosamente, sem
68
+ // avisar ninguém. Rejeitar propaga o erro pro handler de unhandledRejection
69
+ // já existente nos consumidores (ex: apiExecutor.js do multi-api), que
70
+ // responde erro pro chamador em vez de travar pra sempre OU seguir como
71
+ // se nada tivesse acontecido.
72
+ 'saveAsync': (db, collection, dataOrItem, user) => new Promise((resolve, reject) => {
64
73
  // console.log("🚀 ~ db", db)
65
74
  // console.log("🚀 ~ collection", collection)
66
-
75
+
67
76
  var data = Array.isArray(dataOrItem) ? dataOrItem : [dataOrItem];
68
77
  // console.log("🚀 ~ data", data)
69
78
  var dataBuild = mdb.build(data, collection, user);
@@ -72,7 +81,7 @@ var querys = {
72
81
  // console.log("🚀 ~ listaOps", listaOps)
73
82
 
74
83
  db.collection(collection).bulkWrite(listaOps, (err, result) => {
75
- if (err) { console.log('Erro bulkwrite cad: ', err); return resolve({ status: false, err }); }
84
+ if (err) { console.log('Erro bulkwrite cad: ', err); return reject(err); }
76
85
 
77
86
  var ids = result.getInsertedIds();
78
87
  ids.forEach(e => dataBuild[e.index]._reg.objId = e._id + '');
@@ -90,19 +99,19 @@ var querys = {
90
99
  });
91
100
 
92
101
  }),
93
- 'updateFilterAsync': (db, collection, data, param) => new Promise(resolve => {
102
+ 'updateFilterAsync': (db, collection, data, param) => new Promise((resolve, reject) => {
94
103
  var listaOps = mdb.genOpsUpdate(data, param);
95
104
  // console.log(listaOps)
96
105
  db.collection(collection).bulkWrite(listaOps, (err, result) => {
97
- if (err) { console.log('Erro bulkwrite cad: ', err); return resolve({ status: false, err }); }
106
+ if (err) { console.log('Erro bulkwrite cad: ', err); return reject(err); }
98
107
  var result = result.result;
99
108
  resolve({ status: true, result });
100
109
  });
101
110
  }),
102
- 'updateManyAsync':(db,collection,data) => new Promise(resolve=>{
111
+ 'updateManyAsync':(db,collection,data) => new Promise((resolve, reject)=>{
103
112
  var listaOps = mdb.genOpsFull(data, 'save');
104
113
  db.collection(collection).bulkWrite(listaOps, (err, result) => {
105
- if (err) { console.log('Erro bulkwrite cad: ', err); return resolve({status:false,err}); }
114
+ if (err) { console.log('Erro bulkwrite cad: ', err); return reject(err); }
106
115
  var ids = result.getInsertedIds();
107
116
  resolve({status:true,ids:ids});
108
117
  });