Dmitry
connection.end(err => {})
Dmitry
кажется так
Dmitry
я давно с мускулем не работал
Dmitry
а внутри делаешь connection.destroy();
Dmitry
но всё это фигня )))
сomorsiс
а смысл от пулинга, если каждый раз уничтожать коннекшены?
Dmitry
потому как если сервак рубит соединения - значит либо он настроен не правильно, либо код не правильно написан
Dmitry
connectionLimit какой у пула?
Dmitry
и у мускуля конечно тоже интересно
сomorsiс
10
Dmitry
и там и там?
сomorsiс
не, это с ноды
Dmitry
поиграйся с этим значением. Скорее всего у мускуля меньше, вот он тебя и отпинывает
сomorsiс
151 у мускуля (max_connections же?)
Dmitry
эм
Dmitry
покажи код чтоли.
сomorsiс
const pool = mysql.createPool({user, password, database})
<...>
pool.query('...', (err) => {...})
как-то примерно так
Dmitry
вложенных запросов нет?
сomorsiс
нет, есть 2 запроса в одном query
сomorsiс
не уверен, что в этом может быть ошибка
Dmitry
значит должно быть как-то так
pool.query('...', (err) => {
...
pool.end();
})
Dmitry
end() обязателен
Dmitry
вот тут есть ответ https://stackoverflow.com/questions/24445194/mysql-connection-error-using-node-js/25111836#25111836
сomorsiс
т.е. по факту реюза соединений к мускулю нет?
Dmitry
нет конечно ) и никогда не было )))
Dmitry
пулы нужны для того чтобы можно было сделать много вложенных запросов в одном соединении, а не для переиспользования его множество раз
Dmitry
возми sequalize и не будет проблем )
сomorsiс
Dmitry
переиспользование == многократное использование подряд, а не через час
Dmitry
Парни поправте меня если ч ошибаюсь. Что-то сомнения закрадываются (
Vadim
друзья, я с помощью поддержки таки подтвердил номер телефона на aws, но войти в аккаунт всё равно не могу, дали адрес другого отдела поддрежки. пока жду ответа, интересно услышать мнения. раз всё так непросто с aws, следует принять во внимание истории о том, как aws снимает огромные суммы с карточки за превышенные лимиты. как обезопасить себя от этого, если мне нужно просто под ubuntu развернуть сервис с небольшой посещаемостью? желательно бесплатно)
Vladislav
google cloud??
Eldar
Не привязывать боевую карточку к сервисам с автоматическим снятием
🦜
Просто поставить небольшой лимит на интернет платежи
Roman
Vladislav
советуете? лучше aws?
советовать не могу, так как для личного использования июзаю бесплатный хероку
с aws и гуглом игрался только, но про систематическое снятие в aws наслышан)
Roman
советуете? лучше aws?
естественно нет, надо просто понимать что как работает, чтобы не снимали овер 100500 денег
Vladislav
this
Vladislav
Не привязывать боевую карточку к сервисам с автоматическим снятием
Vadim
думаете, достаточно виртуальной карточки с небольшим балансом?
Eldar
Если нужен дешевый хостинг, то уже обсуждалось, очень много VPS по доступным ценам типа 3-4 евро в месяц
Vadim
Eldar
Ааа, ну что-бы попробовать разобраться =/
Eldar
Я тоже хочу
Vadim
я всё жду, когда поддержка проведет через круги регистрации. странно так
Anonymous
ребята, скажите пожалуйста инструмент для деплоя ноды?
Dmitry
Тебя интересует CD?
Anonymous
Eldar
Continuous Delivery
Dmitry
Спасибо )
Anonymous
спасибо, не знал как это называется, да, CD
Eldar
CD - инструмент сборки, деплоя и отката версий в случае необходимости
Anonymous
да, мне нужна альтеранитива capistrano для рельс (если понимаете о чем я)
Eldar
Я не сварщик, но кажется аля Capistrano можно написать и с помощью Ansible =/
Dmitry
Travis,Stinder, Jenkins
Sergei
Capistrano is written in Ruby, but it can easily be used to deploy any language.
как бы намекает, что можно для чего угодно юзать
Sergei
а так, ansible +
Eldar
Но ведь это просто CI тулзы, деплоить и откатывать как?
Dmitry
Там все есть
Eldar
Версионирование из коробки? oO
Anonymous
у капистрано это есть
Eldar
Или нужно нормально версии тегировать в гите?
Dmitry
У circle лучше всего с этим
Dmitry
Я им пользуюсь
Dmitry
кто-нибудь сталкивался?
причем через некоторое время снова работает, но после перезапуска дебага снова перестаёт работать
Node.js releases
Node v9.4.0 (Current)
https://nodejs.org/en/blog/release/v9.4.0
Михаил Макарычев
Такой вопрос. Допустим, у меня нативный драйвер для монги и express. И я на каждый запрос делаю примерно так:
app.get('/foo', (req, res) => {
MongoClient.connect(url, (err, client) {
db = client.db(dbName);
db.find();
db.close();
});
})
Через какое-то время у меня GC начнёт ругаться на память. Но почему? Разве она не должна полностью очиститься после db.close()? То есть я понимаю, почему такой способ более затратный в плане производительности, но память-то почему постоянно растёт?
Ivan
Создавай 1 соединение и обращайся к нему для запросов к БД
Nikita
Nikita
И убери из тесткейса хттп, по таймеру просто дёргай свой метод.
Anton
Скорее всего в памяти остаются объекты mongoClient
сomorsiс
сomorsiс
а клиент закрывается? (всмысле client.close(), в упрощенном коде нет просто)
Anton
по хорошему не должны
По хорошему нужно выносить функцию конекта с базой в model. Лучший вариант паттерн mvc
сomorsiс
Nikita