2014-09-06 2 views
0

Grex가있는 Rexster 그래프 서버에 연결할 때 데이터베이스 연결을 유지해야합니까?데이터베이스 연결을 유지해야합니까?

var grex = require('grex'); 
var client = grex.createClient(); 

client.connect({ graph: 'graph'}, function(err, client) { 
    if (err) { console.error(err); } 

    ... 
}); 

nodejs가 단일 스레드이기 때문에 다른 요청이 동시에 한 연결을 사용하려고 시도 할 가능성이 없기 때문에 제가해야한다고 생각합니다.

+0

JavaScript는 일반 코드의 경우 단일 스레드입니다. 비동기 코드 (콜백 또는 이벤트)의 경우 JS는 다중 스레드됩니다. –

+0

다른 코드 블록 사이를 전환하는 단일 스레드라고 생각합니다. 따라서 콜백을 기다리는 코드가 있으면 자바 스크립트는 다른 곳에서 떨어져 콜백으로 돌아가서 무언가를 기다리고 다른 코드가 끝나면 종료합니다. 그러나 동시에 한 번에 하나 이상의 코드를 실행하지 않습니다. –

답변

1

예. 그렇습니다. 모든 요청에 ​​연결하는 오버 헤드를 가질 이유가 없습니다. 어쨌든 코드가 하나의 스레드에서만 실행되므로 "mangling"문제가 없습니다.

또한 사용량이 많은 응용 프로그램의 경우에 대비하여 요청을 처리하기 위해 대기중인 연결 풀이있을 수도 있습니다. 일부 어댑터는 자동으로 수행합니다. 예를 들어, MongoClient에는 5 개의 기본 연결 풀이 있습니다.

+1

좋은 사용자 이름. –

+0

@IanWarburton 감사합니다 :) – rollingBalls

+0

잠깐 생각에, 그것은 HTTP 요청 비트가 하나의 스레드입니까? 데이터베이스 액세스와 같은 비동기 작업이 스레드로 전달되므로 확실하게 둘 이상의 쿼리를 동시에 실행할 수 있습니까? –

관련 문제