Спасибо за лекции! Столкнулся с проблемой отправки message от воркера при использовании esm во 2-ом примере. с commonJS все работает идеально. upd: ничего умнее "топорного" решения обернуть send в primary.js в сеттаймаут не придумал( `setTimeout(() => worker.send({ task }), 1000)`
Дякую, чудова лекція! Скільки воркерів зазвичай потрібно робити, щоб не було оверхеда? До прикладу в нас є N ядер. Наскільки я розумію потрібно брати N - 1, так як в нас одне ядро забирає мастер процес. Також цікавить питання про пул тредів, який є в ноді (для вводу / виводу), вони працюють на одному ядрі з мастером чи воркер має свій пул тредів для вводу / виводу? Заздалегіть дякую!
Потоки по распределению процессорного времени мало отличаются от процессов. Нужно что-то оставлять под операционку, но бывают случаи, когда потоков можно делать в 2-4 раза больше, если потоки часто впадают в сон, например через Atomics.wait или ждут ввода-вывода ничего не делая ничего, кроме пустого кручения ивегтлупа.
Спасибо большое за лекцию! Вообще пример с cluster оптимальный ? Просто у меня 8 ядра и Primary процесс создает 8 дочерних процессов в итоге в 1 ядре работает Primary процесс, а еще 8 дочерних процессов всего на 8 ядре 9 процессов создается. Возможно стоит код изменить на "os.cpus().length - 1" или может все правильно и так и должно быть ? 🤔
@@TimurShemsedinov Всё, разобрался, действительно можно. Отправлял с помощью subprocess.write() исполняемому файлу C++, забыл в конце '/n' добавить))))
У меня был отдельный курс по проектированию протоколов, но записи не делал. А все, что есть по протоколам - тут - github.com/HowProgrammingWorks/Index/blob/master/Courses/Network.md
Вот когда разбирали библиотеку fs, все было понятно. Операции чтение-запись данные - насущные. Тут и рад бы потратить больше времени на углубление, но не понятна практическая ценность всех действий, что показаны в лекции.
Спасибо за очень крутую лекцию :)
Очень доходчиво объяснен материал
Дивлюсь і радуюсь, дякую)
Концепция ipc пока сложно дается, продолжу смотреть следующие видео.
Спасибо за годные лекции, Тимур!
Спасибо за лекции!
Столкнулся с проблемой отправки message от воркера при использовании esm во 2-ом примере.
с commonJS все работает идеально.
upd: ничего умнее "топорного" решения обернуть send в primary.js в сеттаймаут не придумал(
`setTimeout(() => worker.send({ task }), 1000)`
Дякую, чудова лекція!
Скільки воркерів зазвичай потрібно робити, щоб не було оверхеда? До прикладу в нас є N ядер. Наскільки я розумію потрібно брати N - 1, так як в нас одне ядро забирає мастер процес.
Також цікавить питання про пул тредів, який є в ноді (для вводу / виводу), вони працюють на одному ядрі з мастером чи воркер має свій пул тредів для вводу / виводу? Заздалегіть дякую!
Потоки по распределению процессорного времени мало отличаются от процессов. Нужно что-то оставлять под операционку, но бывают случаи, когда потоков можно делать в 2-4 раза больше, если потоки часто впадают в сон, например через Atomics.wait или ждут ввода-вывода ничего не делая ничего, кроме пустого кручения ивегтлупа.
Спасибо большое за лекцию!
Вообще пример с cluster оптимальный ? Просто у меня 8 ядра и Primary процесс создает 8 дочерних процессов в итоге в 1 ядре работает Primary процесс, а еще 8 дочерних процессов всего на 8 ядре 9 процессов создается. Возможно стоит код изменить на "os.cpus().length - 1" или может все правильно и так и должно быть ? 🤔
А как организовать систему обмена сообщениями между процессом, порожденным child_process.spawn()?
Через файловый потокб pipe, nodejs.org/api/child_process.html#optionsstdio
@@user-if3cd8em4q нет, можно много раз
@@TimurShemsedinov Всё, разобрался, действительно можно. Отправлял с помощью subprocess.write() исполняемому файлу C++, забыл в конце '/n' добавить))))
подскажите, а где видео = 7:57 специальная лекция по проектированию протоколов
У меня был отдельный курс по проектированию протоколов, но записи не делал. А все, что есть по протоколам - тут - github.com/HowProgrammingWorks/Index/blob/master/Courses/Network.md
@@TimurShemsedinov Спасибо
@@TimurShemsedinov Подскажите пожалуйста, возможно ли на модуле net, обработать сокет(response), что бы его воспринимал браузер
@@shmonatan Возможно, но зачем?
@@TimurShemsedinov хочется понять как сокет отправляет данные в браузер
Вот когда разбирали библиотеку fs, все было понятно. Операции чтение-запись данные - насущные. Тут и рад бы потратить больше времени на углубление, но не понятна практическая ценность всех действий, что показаны в лекции.