Size: a a a

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

2019 October 24

AZ

Artem Zuev in Node.js — русскоговорящее сообщество
и еще момент, т.к. объясвление const DBkey внутри try{} то даже если все парсится корректно, то после выхода из try{} эта переменная более недоступна и будет равна undefined...

у вас должно быть что-то типа:

try{
const r = await fetch
const d = JSON.parse()

... тут делаете что нужно с данными...

return result;
} catch (e) {
...
}
return false;
источник

DK

Dmitry K in Node.js — русскоговорящее сообщество
хорошо, я возвращаю значение ритёрном. Как мне корректно обратиться к переменной d?
источник

AN

Artem Nemtsev in Node.js — русскоговорящее сообщество
Artem Zuev
уточните, плз - класс один, но объектов этого класса много, каждый из которых должен долбиться раз в 10 секунд куда-то но со своими "персональными параметрами"... все верно?
Класс один, который реализовывает event emitter и пару методов для общения с API. Дернул метод, он начал работать с API, и когда ответ от API будет удовлетворять - через event emitter ты получаешь ответ.
Задача - иметь возможность создавать несколько экземпляров этого класса. Иметь возможность слушать эти эвенты из нескольких разных экземпляров в идеале даже.
источник

AZ

Artem Zuev in Node.js — русскоговорящее сообщество
так никаких проблем ведь нет иметь таймер внутри каждого экземпляра - не та частота и количество объектов, чтобы переживать ;)
источник

AZ

Artem Zuev in Node.js — русскоговорящее сообщество
так что все верно Вы написали, что в самом классе при запуске управлять своим таймером - вот реально это на ресурсах никак не скажется
источник

AN

Artem Nemtsev in Node.js — русскоговорящее сообщество
Artem Zuev
так никаких проблем ведь нет иметь таймер внутри каждого экземпляра - не та частота и количество объектов, чтобы переживать ;)
Проблема в том, что класс работает еще с redis, в который грузятся все текущие задачи для работы с API.
Имеем 2 таймера - имеем повторяющиеся одни и те же запросы с удвоенной частотой, что уже плохо.
источник

AZ

Artem Zuev in Node.js — русскоговорящее сообщество
делаете доп. класс - который выполняет служебные/управяющие запросы... запускаете его в работу, а к нему привязываете ваши рабочие экземпляры...
источник

AZ

Artem Zuev in Node.js — русскоговорящее сообщество
и там уже сами решите как разрулить - или таймер в этом служебном классе запустите, или на рабочие объекты раскидаете таймеры, а узловой будет обрабатывать так, чтобы не получалось дублирования
источник

AN

Artem Nemtsev in Node.js — русскоговорящее сообщество
Artem Zuev
и там уже сами решите как разрулить - или таймер в этом служебном классе запустите, или на рабочие объекты раскидаете таймеры, а узловой будет обрабатывать так, чтобы не получалось дублирования
Тут сложнее, ибо мы имеем на каждый новый экземпляр свой eventEmitter
Те события, которые будут происходить в одном экземпляре, никак не будут доходить до второго.
Скорее наверное придется pub/sub использовать редисовский вместо events, а интервал запускать в каком-нибудь одном месте в приложении
источник

AZ

Artem Zuev in Node.js — русскоговорящее сообщество
а зачем о событиях одного экземпляра знать всем другим... но в целом опять же - ничего не мешает в узловом создать возможность "оповещений"...

событие в одном экземпляре - уведомление узлового - узловой проходит по всем подключенным экземплярам и их уведомляет о событии
источник

AZ

Artem Zuev in Node.js — русскоговорящее сообщество
можно через редис, конечно, но думаю - это лишнее, организовывать взаимодействие между модулями в одном процессе (даже в одном потоке) через сторонний софт - как-то странно ;)
источник

AL

Alexandr Lastname in Node.js — русскоговорящее сообщество
Ребята, есть какая нибудь лица на нод, которая распаралеливает вычисления
источник

AL

Alexandr Lastname in Node.js — русскоговорящее сообщество
Типо openMP или MPI
источник

go

government of usa in Node.js — русскоговорящее сообщество
Как можно выборочно рассылать данные через socket.io? Ну то есть только например тем у кого открыт определённый диалог
источник

IK

Ilya Kmet in Node.js — русскоговорящее сообщество
government of usa
Как можно выборочно рассылать данные через socket.io? Ну то есть только например тем у кого открыт определённый диалог
там же комнаты есть, или я что то не понимаю?
источник

go

government of usa in Node.js — русскоговорящее сообщество
Ilya Kmet
там же комнаты есть, или я что то не понимаю?
А если у меня диалогов тысячи, как комнаты создавать
источник

IK

Ilya Kmet in Node.js — русскоговорящее сообщество
government of usa
А если у меня диалогов тысячи, как комнаты создавать
ну я тут не подскажюу какой паттерн, но точно знаю что иного способо как комнаты вроде бы не существует
источник

IK

Ilya Kmet in Node.js — русскоговорящее сообщество
но в любом случае это будет что то производное
источник

Р

Русик in Node.js — русскоговорящее сообщество
government of usa
Как можно выборочно рассылать данные через socket.io? Ну то есть только например тем у кого открыт определённый диалог
Обходи каждый сокет
источник

go

government of usa in Node.js — русскоговорящее сообщество
Русик
Обходи каждый сокет
Придумал вариант посылать сокет.эмит обновления на который клиенты будут присылать айди открытого диалога и последнего сообщения и сервер присылать им диалог если он обновился
источник