Size: a a a

Node.js — русскоговорящее сообщество

2020 February 05

АБ

Андрей Бородин in Node.js — русскоговорящее сообщество
Ребята, как можно мониторить добавление новых записей в базу, без постоянного к ней обращения? Нужно чтобы по мере поступления информации в бд( в данном случае redis ) она так же сразу отображалась на сайте.
источник

S🛸

Sergey 🛸 in Node.js — русскоговорящее сообщество
Илья
В проекте connect-mongo 1.3 уже 2 года как v3 - кто знает почему предыдущие разрабы могли не обновлять?
Работает, не трогай
источник

И

Илья | 😶 in Node.js — русскоговорящее сообщество
Андрей Бородин
Ребята, как можно мониторить добавление новых записей в базу, без постоянного к ней обращения? Нужно чтобы по мере поступления информации в бд( в данном случае redis ) она так же сразу отображалась на сайте.
Прослойка мб
источник

S🛸

Sergey 🛸 in Node.js — русскоговорящее сообщество
Андрей Бородин
Ребята, как можно мониторить добавление новых записей в базу, без постоянного к ней обращения? Нужно чтобы по мере поступления информации в бд( в данном случае redis ) она так же сразу отображалась на сайте.
БД так и работает
источник

GS

Grigorii K. Shartsev in Node.js — русскоговорящее сообщество
Андрей Бородин
Ребята, как можно мониторить добавление новых записей в базу, без постоянного к ней обращения? Нужно чтобы по мере поступления информации в бд( в данном случае redis ) она так же сразу отображалась на сайте.
В редисе есть возможность подписаться на обновление (https://redis.io/topics/pubsub)
А дальше либо вебсокеты, либо SSE
источник

В-

Вернер Карл Гейзенберг - Агент Госдепа in Node.js — русскоговорящее сообщество
Подскажите как можно ускорить получение ответа от монго если много записей, и она всю базу выгружает в озу? Потому что записей относительно не так много, но оперативы жрёт дофига, мне ещё нужно удвоить количество записей, а с такими темпами может не хватить озу
источник

CM

Chingiz Mamiyev in Node.js — русскоговорящее сообщество
Вернер Карл Гейзенберг - Агент Госдепа
Подскажите как можно ускорить получение ответа от монго если много записей, и она всю базу выгружает в озу? Потому что записей относительно не так много, но оперативы жрёт дофига, мне ещё нужно удвоить количество записей, а с такими темпами может не хватить озу
Может на postgres перейдешь?
источник

В-

Вернер Карл Гейзенберг - Агент Госдепа in Node.js — русскоговорящее сообщество
Chingiz Mamiyev
Может на postgres перейдешь?
Там с таким нет проблем?
источник

АК

Алексей Карташов in Node.js — русскоговорящее сообщество
Народ, а кто-нибудь строил приложения на inversify? ну или с помощью любого другого di - typedi например?
источник

АК

Алексей Карташов in Node.js — русскоговорящее сообщество
а то вот я сейчас обдумываю архитектуру, доменная модель - это папка с objection модельками, сервисный слой, который как раз и будет строится и склеиваться с помощью inversify. и вот где-то сбоку есть rest-веб-вервер. не суть важно - koa или express. возник вопрос - как эти сервисы из сервисного слоя, склеенные с помощью inverisy-я прокидывать в роуты/контроллеры?
источник

u

undefined in Node.js — русскоговорящее сообщество
Андрей Бородин
Ребята, как можно мониторить добавление новых записей в базу, без постоянного к ней обращения? Нужно чтобы по мере поступления информации в бд( в данном случае redis ) она так же сразу отображалась на сайте.
Если у тебя с клиентами есть realtime-соединение (websocket, sse), то при добавлении записи ты можешь обойти все нужные коннекты и отправить им последнюю добавленную информацию.
источник

АК

Алексей Карташов in Node.js — русскоговорящее сообщество
т.е. изначально есть группа роутов, упрощенно что-то типа такого:

import Router from '@koa/router';

export default function setupRoutes(config = {}) {
 const router = new Router(config);

 router.get('/', ctx => {
   // ...
 });

 router.post('/users/:id', ctx => {
   // ...
 })

 return router;
}

где-то снаружи вызывается эта setupRoutes и вернувшиеся роуты маунтятся на веб-сервер.

но вот как внутри эти роутов вызвать сервисы из сервисного слоя, при условии, что делать это надо через inversify? прокидывать container внутрь setupRoutes и уже там делать что-то типа такого?

import { TYPES } from '~/services';

export default function setupRoutes(container, config = {}) {
 // ...

 router.post('/users/:id', async ctx => {
   const user = ctx.body;
   // validation here...

   const usersService = container.get(TYPES.UsersService);
   await usersService.createUser(ctx.body);
   // ...
 })

 return router;
}

Но ведь тогда di превращается в Service Locator, что как бы антипаттерн и такого же результата я могу достичь и без inversify.

Такой подход норм вообще? Или что-то всё-таки не так в моих размышлениях?
источник

АК

Алексей Карташов in Node.js — русскоговорящее сообщество
а может вообще такими штуками мало кто балуется?)
источник

АБ

Андрей Бородин in Node.js — русскоговорящее сообщество
Sergey 🛸
БД так и работает
Передает данные на сайт?) Не думаю)
источник

AW

Alex WolF in Node.js — русскоговорящее сообщество
Товарищи, привет! Подскажите, кто пользует cluster: как именно происходит балансировка TCP/HTTP запросов в нём, если несколько форков слушают один порт? В доке написано:

> The first one (and the default one on all platforms except Windows), is the round-robin approach, where the master process listens on a port, accepts new connections and distributes them across the workers in a round-robin fashion, with some built-in smarts to avoid overloading a worker process.

Хотелось бы знать, что это за "some built-in smarts" такие и на что тут можно рассчитывать? Он отправляет туда, где ядро меньше всего загружено?
В интернетах этих ваших информации не нашёл, все просто шлёпают форков по количеству ядер и всё :(
источник

ДФ

Дмитрий Филиппенко in Node.js — русскоговорящее сообщество
Андрей Бородин
Передает данные на сайт?) Не думаю)
Зависит от запроса в бд
источник

И

Илья | 😶 in Node.js — русскоговорящее сообщество
Alex WolF
Товарищи, привет! Подскажите, кто пользует cluster: как именно происходит балансировка TCP/HTTP запросов в нём, если несколько форков слушают один порт? В доке написано:

> The first one (and the default one on all platforms except Windows), is the round-robin approach, where the master process listens on a port, accepts new connections and distributes them across the workers in a round-robin fashion, with some built-in smarts to avoid overloading a worker process.

Хотелось бы знать, что это за "some built-in smarts" такие и на что тут можно рассчитывать? Он отправляет туда, где ядро меньше всего загружено?
В интернетах этих ваших информации не нашёл, все просто шлёпают форков по количеству ядер и всё :(
round robin вроде как
источник

AW

Alex WolF in Node.js — русскоговорящее сообщество
Илья | 😶
round robin вроде как
Ну я же вопрос написал :(
И даже прикрепил цитату из доков, где и сказано, что там RR, вопрос не в этом
источник

S🛸

Sergey 🛸 in Node.js — русскоговорящее сообщество
Андрей Бородин
Передает данные на сайт?) Не думаю)
Записываешь в неё данные и при следующей выборки они новые
источник

R

Rustam in Node.js — русскоговорящее сообщество
Alex WolF
Товарищи, привет! Подскажите, кто пользует cluster: как именно происходит балансировка TCP/HTTP запросов в нём, если несколько форков слушают один порт? В доке написано:

> The first one (and the default one on all platforms except Windows), is the round-robin approach, where the master process listens on a port, accepts new connections and distributes them across the workers in a round-robin fashion, with some built-in smarts to avoid overloading a worker process.

Хотелось бы знать, что это за "some built-in smarts" такие и на что тут можно рассчитывать? Он отправляет туда, где ядро меньше всего загружено?
В интернетах этих ваших информации не нашёл, все просто шлёпают форков по количеству ядер и всё :(
А ты сам их на один порт ставишь? Он же по умолчанию сам порт назначает им
источник