2016-03-10 3 views
0

С there is not documentation about how to create connection poolings with Sailsjs я быть поисками немного об этом, и я обнаружил, что sails-mysql adapter есть любая конфигурация пула в нем, но связан с испытаниями:Пулы соединений с Sailsjs

{ 
    host: process.env.WATERLINE_ADAPTER_TESTS_HOST || 'localhost', 
    // (...) 
    database: process.env.WATERLINE_ADAPTER_TESTS_DATABASE || 'sails_mysql', 
    pool: true, 
    connectionLimit: 10, 
    waitForConnections: true 
} 

Так что я ве пытался включить pool: true моего connections.js файла в парусах:

someMysqlServer: { 
    adapter: 'sails-mysql', 
    host: '127.0.0.1', 
    user: 'root', 
    password: '', 
    pool: true, 
    database: 'mydatabase' 
}, 

сервер все еще работает, и я восстановить данные из базы данных, но я не уверен, что вообще о том, если я установить соединение бросить службу пула. Есть ли способ проверить эту функцию?

Спасибо.

+0

Вы можете попробовать использовать адаптер ['sails-mysql-transaction'] (https://github.com/postmanlabs/sails-mysql-transactions). Он имеет пул соединений, и вы также получаете транзакции – elssar

ответ

3

Все есть в кодексах

вы можете увидеть коды парусов-MySQL (узлов модулей), и вы найдете решение для ваших сомнений наверняка. в модуле sails-mysql главный js равен node-modules/sails-mysql/lib/adapter.js (согласно node-modules/sails-mysql/package.json). так в adapter.js файл, который вы можете увидеть ..

/*--codes--*/ 
var _spawnConnection = require('./connections/spawn'); 
/*--codes--*/ 
defaults: { 
    pool: true, 
    connectionLimit: 5, 
    waitForConnections: true 
}, 
/*--codes--*/ 

, который устанавливает для использования пула по умолчанию с connectionLimit 5.

Теперь перейдите к файлу node-modules/sails-mysql/lib/connections/spawn.js там вы видите этот фрагмент.

/*--codes--*/ 
/*--codes--*/ 
    if (connectionObject.connection.pool) { 
    connectionObject.connection.pool.getConnection(function (err, conn) { 
     afterwards(err, conn); 
    }); 
    return; 
    } 

    // Use a new connection each time 
    var conn = mysql.createConnection(connectionObject.config); 
    conn.connect(function (err) { 
    afterwards(err, conn); 
    }); 
    return; 
/*--codes--*/ 
/*--codes--*/ 

здесь проверить, если адаптер настроен на использование бассейна или нет, если это pool:true того соединения порождается из пула другого мудрой одинокое соединения используется без объединения ...

Сейчас подходит к ваше сомнение .... в вашей конфигурации/connections.js если и определить адаптер как

mysqlServerMaster: { 
    adapter: 'sails-mysql', 
    host: 'localhost', 
    user: 'root', 
    password: 'root', 
    pool: false, 
    database: 'payments_db' 
}, 

, то вы используете MySQL без объединения.

и еще Если этот параметр используется ...

mysqlServerMaster: { 
    adapter: 'sails-mysql', 
    host: 'localhost', 
    user: 'root', 
    password: 'root', 
    pool: true, 
    connectionLimit: 10, 
    database: 'payments_db' 
}, 

тогда вы с пула соединений MySQL с connectioLimit === 10 наверняка. Надеюсь, вы получили его сейчас. https://www.npmjs.com/package/sails-mysql

Смежные вопросы