Size: a a a

NodeUA - JavaScript and Node.js in Ukraine

2021 December 09

a

andvs in NodeUA - JavaScript and Node.js in Ukraine
Просто на апи есть 3 "легких" задачи, обращение к которым происходит часто, и одна тяжелая. При выполнении тяжелой задачи заметно тормозит все.
источник

a

andvs in NodeUA - JavaScript and Node.js in Ukraine
Не могу найти практик как изолировать такую задачу.
источник

˸A

˸̧̨ ͅBlack Akula˸̧̨ ... in NodeUA - JavaScript and Node.js in Ukraine
Что значит "параллельно"? Ивент-луп работает асинхронно, но не параллельно
источник

Ф

Физик-ядерщик... in NodeUA - JavaScript and Node.js in Ukraine
Про ивент луп я понял, этот вопрос не касается ивент лупа
источник

Ф

Физик-ядерщик... in NodeUA - JavaScript and Node.js in Ukraine
Функция синхронная
источник

Ф

Физик-ядерщик... in NodeUA - JavaScript and Node.js in Ukraine
Походу я бред написал только что
источник

˸A

˸̧̨ ͅBlack Akula˸̧̨ ... in NodeUA - JavaScript and Node.js in Ukraine
Это вы написали: "и она может вызываться паралельно"
Не понятно, как она вызывается (в случае одного потока)...
источник

Ф

Физик-ядерщик... in NodeUA - JavaScript and Node.js in Ukraine
Вот именно :D
источник

Ф

Физик-ядерщик... in NodeUA - JavaScript and Node.js in Ukraine
А что если такую функцию передать в ивент луп, вызвать ее 10 раз например, это параллельные вызовы будут или по очереди всё выполниться?
источник

Ф

Физик-ядерщик... in NodeUA - JavaScript and Node.js in Ukraine
Каждый вызов засунуть в process.nextTick например
источник

Ф

Физик-ядерщик... in NodeUA - JavaScript and Node.js in Ukraine
10 раз так сделать
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
блокирующая функция не станет лучше работать на 1 процессорной машине в потоке, тут нужну еще ядра
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
если 100% cpu и есть еще ядра, то сделайте полу потоков и присылайте в них задачи, например, как тут https://github.com/metarhia/noroutine
источник

˸A

˸̧̨ ͅBlack Akula˸̧̨ ... in NodeUA - JavaScript and Node.js in Ukraine
Никогда ивент-луп не работал параллельно. Если ваша функция блокирует поток, то хоть в ивент-лупе, хоть последовательно - будет одинаково
источник

Ф

Физик-ядерщик... in NodeUA - JavaScript and Node.js in Ukraine
@tshemsedinov, @blackakula, понял, спасибо большое за информацию)
источник

˸A

˸̧̨ ͅBlack Akula˸̧̨ ... in NodeUA - JavaScript and Node.js in Ukraine
В одной из лекций Тимура видел что-то про это. Наверное, из этого списка: https://habr.com/ru/post/452974/
источник

a

andvs in NodeUA - JavaScript and Node.js in Ukraine
Да, это похоже на то что нужно!) Спасибо. У Вас часом нет лекции по использованию? С документацией и примерами не густо вижу...
источник

a

andvs in NodeUA - JavaScript and Node.js in Ukraine
Правильно же понимаю что вызов:
(async () => {
 const res1 = await module1.method1('value1');
 const res2 = await module2.method2('value2');
 console.log({ res1, res2 });
})();
отправит на другие ядра и не будет нагружать\блокировать основной поток?
источник

a

andvs in NodeUA - JavaScript and Node.js in Ukraine
я о noroutine
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
да, но там есть режим эксклюзивный и не эксклюзивный, первый для блокирующих вещей, а второй для неблокирующих
источник