Size: a a a

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

2020 April 11

rl

rodion leon in Node.js — русскоговорящее сообщество
Pavel Shakhov (pongo)
особенно если учесть, что ты явно выбрал не тот язык для многопоточного програмирования
Ну ведь тут есть основы
источник

rl

rodion leon in Node.js — русскоговорящее сообщество
А начинать сразу с "кучи" слишком сложно
источник

rl

rodion leon in Node.js — русскоговорящее сообщество
Мне ведь потоки нужны пока что только для запуска одного процесса на общий результат ну и множество запросов к серверу
источник

rl

rodion leon in Node.js — русскоговорящее сообщество
Больше мне ничего не надо
источник

K

Keith in Node.js — русскоговорящее сообщество
Добрый день.
Подскажите, как увеличить таймаут запроса? То есть что б клиент ждал ответа дольше
Юзаю axios.
По всей видимости так не работает, потому, что завершается всё раньше:
axios({
 url: 'https://www.vk.com',
 proxy: { host: '65.152.119.226', port: '47831' },
 timeout: 90000
},
На google.com всё ок, на vk.com - вылезает ошибка, которая на скрине
источник

S🛸

Sergey 🛸 in Node.js — русскоговорящее сообщество
Для начала разберись что такое асинхроннось, параллельность и согласованность и только потом начинай изучать как это работает в nodejs
источник

PS

Pavel Shakhov (pongo) in Node.js — русскоговорящее сообщество
rodion leon
Как вобще этот promise.all работает объединяя 8 воркеров в один поток?
я же говорю: разберись сначала в однопоточном языке, а потом суйся в многопоточное. или возьми другой язык под задачу.

promise.all:

1) ничего не запускает. он лишь ждет завершения промисов, а потом возвращает массив из тех результатов, которые вернули промисы.

2) про воркеры он ничего не знает. и в один поток он их не объединяет. он, опять же повторю, ничего вообще не знает про воркеры, потоки, процессы — он только с промисами работает.

код, который ты прислал. делает следующее:

* items.map создает (а промисы запускаются сразу при создании) кучу промисов.
* каждый промис передает задачу в пул и ждет завершения задачи. затем пишет "finished {i}"
* пул берет свободный воркер и запускает в нем задачу, ожидая ее выполнения.
* promise.all при этом лишь ждет завершения всех промисов

можешь вот так изменить код и получишь результаты работы воркеров
Promise.all(
 items.map(async (_, i) => {
   const result = await pool.run(() => ({ i }));
   console.log('finished', i);
   return result;
 }),
)
 .then((res) => {
   console.log('finished all');
   console.log(res);
 })
источник

АП

Алексей Попов in Node.js — русскоговорящее сообщество
rodion leon
То есть воркер это тоже самое что и класстер в одном процессе
Кластер порождает процессы, а не потоки
И опять напомню, что тебе кластер не нужен, если хочется именно по разным процессам раскидать задания, нужен child_process
источник

а

артем новиков in Node.js — русскоговорящее сообщество
Алексей Попов
Кластер порождает процессы, а не потоки
И опять напомню, что тебе кластер не нужен, если хочется именно по разным процессам раскидать задания, нужен child_process
вот нашел статью где в коде замеряется время выполения с воркерами - 8 воркеров в 7 раз быстрее
источник

а

артем новиков in Node.js — русскоговорящее сообщество
источник

а

артем новиков in Node.js — русскоговорящее сообщество
слишком много кода нужно что бы все заработало
источник

а

артем новиков in Node.js — русскоговорящее сообщество
лучше тогда уже на самом деле перейти на java
источник

а

артем новиков in Node.js — русскоговорящее сообщество
раз там в 7 строк а не 70...
источник

SM

Sheldhur Mornor in Node.js — русскоговорящее сообщество
Ты хочешь слишком много от языка для создания формочек на фронте
источник

RB

Random Balance in Node.js — русскоговорящее сообщество
артем новиков
лучше тогда уже на самом деле перейти на java
С чего ты решил что там проще будет, если ты не разбираешься в теме?
источник

SM

Sheldhur Mornor in Node.js — русскоговорящее сообщество
Но там действительно проще
источник

а

артем новиков in Node.js — русскоговорящее сообщество
Random Balance
С чего ты решил что там проще будет, если ты не разбираешься в теме?
я вобще не понимаю суть - столько строк кода 1 одну задачу...
источник

RB

Random Balance in Node.js — русскоговорящее сообщество
артем новиков
вот нашел статью где в коде замеряется время выполения с воркерами - 8 воркеров в 7 раз быстрее
Если у него 8 ядер то так и будет. Если бы было 4 то был бы в 4 раза прирост. Если задача полностью утилизирует CPU.
источник

а

артем новиков in Node.js — русскоговорящее сообщество
а что будет если будешь парсер делать? что там сам код в нем 500 строк, а тут что ли 10 тыс тогда будет?
источник

MK

Mihail Kuzmin in Node.js — русскоговорящее сообщество
артем новиков
я вобще не понимаю суть - столько строк кода 1 одну задачу...
ты хотел .запуститьПараллельно() ?
источник