Pavel
да, но проблема в том, как проверять коннект с бд?
Pavel
чтобы в случае чего переподключиться
Alexander
У меня ощущение, что подключаться надо отдельно для разных запросов, так как код в доках монгуса в примерах лежит не внутри коллбека подключения какого-то
Alexander
Artem
Привет, NodeJS коммьюнити!
У меня есть вопрос про настройку nginx в качестве фронт-енда перед node приложением. Nginx проксирует запросы приложению и все хорошо. Но если я перезапускаю сервер, nginx-у некуда проксировать и в этот момент он отдает 502 Bad Gateway. Нужно, чтобы nginx подождал пока приложение перезапустится. Судя по документации, мне должны помочь деректива upstream и параметр fail_timeout. Но это не работает. Max_fails пробовал ставить в 0 (отключить лимит) - то же самое. Вот конфиг с попытками все наладить
server {
...
location / {
...
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
proxy_pass http://client;
}
}
upstream client {
server 127.0.0.1:8080 fail_timeout=30s max_fails=6000;
}
Похоже, я что-то не правильно делаю или не понимаю, как работают fail_timeout и max_fails. Кто нибудь сталкивался с таким?
Заранее спасибо
Anonymous
2 процесса node, один перезапускаешь, потом второй ?
Anonymous
поднимаешь не один процесс приложения а 2 и делаешь через load balancing
upstream app_example {
least_conn; # Use Least Connections strategy
server 127.0.0.1:9000; # NodeJS Server 1
server 127.0.0.1:9001; # NodeJS Server 2
}
Anonymous
и потом по очереди перезапускаешь
Anonymous
и не получашь 502
Artem
А, понял! Получается, если у меня помимо клиента есть еще сервер на другом порту, с ним можно проделать тоже самое в другом upstream?
Artem
Идею понял, спасибо!
Anonymous
ок
Artem
Но непонятно, все-таки, почему fail_timeout не работает
Anonymous
ты на реальной (production) машине проверял или для теста поднимал ?
потому что ты все зависит от того сколько в данный момент пытается подклчиться и сколько процесс поднимается
Artem
минимальный дроплет на digital ocean, коннекты только от меня
Artem
время между рестартами около секунды, я успеваю обновить страницу в браузере и ловлю 502
Artem
отвечать процесс начинает еще в течение пары секунд. выглядит так, что эти параметры просто не срабатывают
Mannaro
Народ, есть задача сделать экспорт данных в СПСС. Есть какие-то адекватные мануалы?
Artem
pm2 есть, что именно такое graceful restart почитаю, спасибо. При пересборке делаю pm2 stop и start, между ними еще кое-что происходит, здесь как раз и есть даунтайм. Хотелось бы чтобы nginx просто подождал и я в упор не понимаю почему он этого не делает
Mannaro
:D
Да ну, это оч известная штука. IBM SPSS
Mannaro
https://ru.wikipedia.org/wiki/SPSS
Sheldhur
што эта? эксель от IBM?
Mannaro
Да хуй его знает. Заебли меня уже с этим
Sheldhur
xD
Sheldhur
посмотри в чём данные сохраняет
Sheldhur
возможно это sqlite
Sheldhur
или ещё какая хрень
Sheldhur
читай сколько влезет
Mannaro
Да так-то понятно =) Я думал, мб кто в теме и либа какая есть
Roman
@equicolor есть разница между таймаутом ответа (долго отвечает) и отсутствием биндинга на порту. В одном случае при проксировании соединение установлено, но время ответа может быть большим и тут нужна опция fail_timeout, в другом случае при проксировании идёт обращение на порт, который никто не слушает и здесь использовании этой опции неуместно (бесполезно). Подробнее читай про установление tcp сессии
Artem
А ВОТ ТЕПЕРЬ ПАБЛИК
конкретно не разбирался но возможно ли такое?
authority webrtc
Sergey
Десять вещей, которые вы не должны делать с Node.js-приложением в продакшене — http://amp.gs/zg2p
Андрей
кто по хероку подскажет ?
Андрей
мне нужно настроить переменную окружения которая будет доступна в моём ноде-скрипте.
Андрей
как это сделать, минуя использование Procfile ?
Андрей
то есть где в вебинтерфейсе это делается ?
Igor
да
Igor
есть вкладка
есть консольная утилита - там можно выставить
Igor
Андрей
https://i.imgur.com/7878m2m.png
Андрей
ага
Anonymous
Посоветуйте либу, чтобы чейнить вызовы.
Андрей
вызовы чего ?
Anonymous
колбэков
Evgeny
Bluebird
Anonymous
Это ж промис.
Андрей
промисцы
Андрей
тема
Evgeny
Ну да - чейнинг вызовов
Anonymous
Да ладно. Мне для синхроного кода.
Vladimir
Да, я тоже
Anonymous
Допустим, есть массив коллбэков
[ call1,
call2,
call3 ]
Мне нужно вызвать из по цепочке.
Дима
Дима
bluebird бери
Anonymous
[ ... ].reduce(
(body, iteration) => iteration(body),
reportBody
);
Anonymous
Вот как я это делаю в коде.
Archakov
Archakov
Здраве всем. Может кто подсказать, в чем дело?
Archakov
Я юзал натив в ноде. Хотел на es6 перейти, юзать class, let и т.п.. У меня на вебпаке babel-loader компилит скрипты клиентские, но почему-то выводит ошибку, когда я создаю .babelrc с таким объектом загрузок
Sergey
Archakov
прежде чем вопрос тут задать, я в гугле шарил. Пытался решить сам как-нибудь
Sergey
какой версии бабель?
Archakov
Archakov
Sergey
в чем проблема перейти на новую ноду?
Archakov
в том, что я дурак и не обновляюсь до сих пор
Archakov
ща попробую обновить, посмотрю
Archakov
оке
Yuriy
Vlad
тоже хотел сказать, что это очень старая либа
Дима
++
Yuriy
Человек спросил про цепочку коллбэков, я посоветовал проверенное продашеном решение (к слову, обновившееся неделю назад, т.е. не заброшенное).
Но вообще — промисы, да )
Yuriy
Возможно, решается вопрос поддержки легаси-кода. Не обладаю достаточной информацией, увы )
Дима
const serial =
calls => Bluebird.mapSeries( calls, Bluebird.fromCallback )
Sergey
ну это блюбёрд
Sergey
а нативно ж
Андрей
чото не вижу смысла юзить блюбёрд на своих проектах.
Нативные ведь есть промисцы