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 +1 -1
- package/utils/mdb.js +6 -1
- package/utils/querys.js +16 -7
package/package.json
CHANGED
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
});
|