nodejs의 제3자 모듈generic-pool 모듈에 대한 개선
그 기본적인 사용 방법은 작자가 준 예를 참조할 수 있다.
// Create a MySQL connection pool with
// a max of 10 connections and a 30 second max idle time
var poolModule = require('generic-pool');
var pool = poolModule.Pool({
name : 'mysql',
create : function(callback) {
var Client = require('mysql').Client;
var c = new Client();
c.user = 'scott';
c.password = 'tiger';
c.database = 'mydb';
c.connect();
// parameter order: err, resource
// new in 1.0.6
callback(null, c);
},
destroy : function(client) { client.end(); },
max : 10,
idleTimeoutMillis : 30000,
log : true
});
// acquire connection - callback function is called
// once a resource becomes available
pool.acquire(function(err, client) {
client.query("select * from foo", [], function() {
// return object back to pool
pool.release(client);
});
});
。 。
name , 。
create , , c , c 。callback(null,c) , , , 。 error , callback :
c.on("error",function(e){callback(e,c)});
callback(null,c);
destroy , 。
max 。
idleTimeoutMills , , 。
log 。
accquire 。 , 。
generc-pool , , js 。 。 , A B , poolAB , A , poolAB , generic-pool , 。 。 , 。
:
function removeNotWritable() {
var toKeep = [],
i,
al;
// Go through the available (idle) items,
// check if they are not writeable
for (i = 0, al = availableObjects.length; i < al; i += 1) {
if (availableObjects[i]["obj"]["writable"] != false && availableObjects[i]["obj"]["readable"] != false ) {
// Client is writeable, so keep it.
toKeep.push(availableObjects[i]);
} else {
// The client is not writeable, call it's destroyer.
// log("removeIdle() destroying obj - now:" + now + "not writeable");
me.destroy(availableObjects[i].obj);
}
}
// Replace the available items with the ones to keep.
availableObjects = toKeep;
al = availableObjects.length;
}
, , , , 。 dispense() 。
function dispense() {
......
if (waitingCount > 0) {
removeNotWritable();
if (availableObjects.length > 0) {
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.