2015-07-29 23 views
12

OrientJS'i Express.js ile kullanmak istiyorum. Herhangi bir http isteği yapılmadan önce bağlantı havuzunu nasıl yapılandırabilirim, istek/yanıt döngüsü sırasında havuzdan bağlantı kurabilir ve bırakabilirim ve uygulamayı kapattığımda havuzu bitirebilir miyim?OrientJS'de bağlantı havuzu

+0

[OrientJS özellikleri] (https://github.com/orientechnologies/orientjs#features) zaten bir ** Bağlantı Havuzu ** desteği içermektedir. Bunu denediniz mi? Aksi taktirde, istemcileri genel bir kaynak havuzu modülü ile [bu bir] (https://github.com/coopernurse/node-pool) gibi ele alabilirsiniz. – xmikex83

+0

Hayır, yapmadım çünkü onu nasıl kullanacağımı bilmiyorum. Bahsettiğiniz modül ilginç görünüyor. –

cevap

3

OrientJS kaynağına biraz baktım ve aslında built-in ConnectionPool'u kullanmanın bir yolunu buldum.

Genel bir kaynak havuzu modülüne (yukarıdaki yorumda belirttiğim gibi) ihtiyacınız yok. Temel olarak, bu çok basit. Tek yapmanız gereken:

var OrientDB = require('orientjs'); 

var server = OrientDB({ 
    host: 'localhost', 
    port: 2424, 
    username: 'root', 
    password: 'yourpassword', 
    pool: { 
    max: 10 
    } 
}); 

Şimdi server nesne ConnectionPool inşa kullanıyor ve maksimum bağlantıları vardır izin verdi.
server.transport.pool'u işaretlerseniz, iç havuz nesnesini görürsünüz.

Gerçekten kaç tane bağlantı yapıldığını (veya kullanılmakta olduğunu) kontrol etmek için, server.transport.pool.connections (bir dizidir) uzunluğunu kontrol edebilirsiniz.

bağlantı kullanımını izlemek için başka bir yol basit bir bash komut şudur:

$ watch -n 0.1 'netstat -p tcp -an | grep 2424' 

Ve bağlantıları göreceksiniz.

Bu noktadan sonra, sorgulamaya hemen başlayabilirsiniz ve bağlantı havuzu otomatik olarak kullanılır.

+1

Bu harika. Ancak şimdi, http yaşam döngüsü içindeki bağlantıların nasıl yönetileceğini bulmamız gerekiyor. Bence ekspres js önyükleme yaparken fragmanınız kullanılmalı, değil mi? Yanıtı oluşturduktan sonra bağlantıyı nasıl bırakacağınızı ve sunucum bittiğinde havuzun nasıl kapatılacağını biliyor musunuz? –

+1

Tüm bu ilgim var çünkü her şeyi incelikle kapatmak ve havuzu düzgün bir şekilde tamamlamak, gerektiğinde herhangi bir hatayı ele almak için db sunucusunu kapatmak. Buna göre şeyler kapatmazsanız orientdb bazen bozuk dosyalara benziyor ... –

+1

IMHO 'server' değişkenini dışa aktaran bir modül oluşturmanız gerekiyor, daha sonra uygulamanızda ihtiyacınız olduğunda buna ihtiyacınız var. Bağlantının edinme/serbest bırakma işlemi OrientJS tarafından otomatik olarak işlenir, böylece bir şey yapmanıza gerek yoktur, sadece db (s) nesnelerini sorgulamak için sunucu nesnesini kullanın. Tüm bağlantıları zarif bir şekilde kapatmak için, 'server.close()' işlevini çağırın. Bundan sonra db'yi sorgulamak isterseniz, tekrar yapmanız gerekir 'var server = OrientDB (...)'. – xmikex83

İlgili konular