Size: a a a

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

2019 October 18

K

Kurakste in Node.js — русскоговорящее сообщество
Всем привет.
Нужно простенький шаблонизатор подобрать - генерить пяток страниц по шаблону. Скажите   Pug это ок или надо еще поискать?
источник

A

Anton K. in Node.js — русскоговорящее сообщество
Kurakste
Всем привет.
Нужно простенький шаблонизатор подобрать - генерить пяток страниц по шаблону. Скажите   Pug это ок или надо еще поискать?
Паг хбс ежс
источник

PS

Pavel Shakhov (pongo) in Node.js — русскоговорящее сообщество
Kurakste
Всем привет.
Нужно простенький шаблонизатор подобрать - генерить пяток страниц по шаблону. Скажите   Pug это ок или надо еще поискать?
nunjucks еще
источник

A

Anton K. in Node.js — русскоговорящее сообщество
А хелперы есть только у хбс или в любом шаблонизаторе они есть? Я прост только хбс юзал
источник

IP

Ivan Pavlov in Node.js — русскоговорящее сообщество
На мой вкус hbs/handelbars самое понятное и удобное)
Pug для любителей Python, при том что от HTML вообще очень далеко ушёл.
источник

YZ

Yaroslav Zhymkov in Node.js — русскоговорящее сообщество
Kurakste
Всем привет.
Нужно простенький шаблонизатор подобрать - генерить пяток страниц по шаблону. Скажите   Pug это ок или надо еще поискать?
Ок
источник

A

Anton Veber in Node.js — русскоговорящее сообщество
Сергей
Ребята, такой вопрос
Хочу сделать конструктор сайтов
Возможно ли сконструированные сайты автоматически размещать на каком нибудь хостинге? Существует ли такое api?
источник

AZ

Artem Zuev in Node.js — русскоговорящее сообщество
Всем вечерочка бодрого. Вопрос для теоретиков ;)
Исходные данные - установленное WS-соединение с сотней клиентов
В секунду каждому клиенту отправляется от 2 до 5  (в среднем 3) пакетов с данными и должен придти в ответ пакет с результатом в течение 3 секунд

Т.к. это не HTTP-REST (или подобное), то отлавливать таймаут на ответ необходимо своими силами. Варианты реализации:
- при запросе создается таймер setTimeout() который отслеживает приход времени и срабатывает один раз во время наступления нужного момента. Итого имеем в максимуме 100 * 3 * 3 = 900 таймеров единомоментно, плюс постоянные процедуры создания/удаления таймеров по мере отправки запросов/получения ответов
- инициируется один таймер setInterval с интервальностью не более 50мс (т.е. 20 вызовов в сек), который проходит по всем "ждунам" (как выше писал около 900 в худшем варианте) и проверяет их "статус таймаута". Итого нет постоянных пересозданий, но есть риск в случае даже небольшой задержки в проходе, наслоения вызовов...
- третий вариант по сути разновидность второго с той лиш разницей, что вместо разового создания setInterval используется setTimeout - тем самым исключается наслоение циклов, но возвращается проблема постоянного пересоздания таймеров, просто в этом варианте он будет один, но "короткий"
источник

AZ

Artem Zuev in Node.js — русскоговорящее сообщество
Кто к какому варианту более склонен с точки зрения быстродействия и ресурсоемкости (минимизация потребления процессорного времени и соответственно памяти)
источник

D

Denis in Node.js — русскоговорящее сообщество
Artem Zuev
Кто к какому варианту более склонен с точки зрения быстродействия и ресурсоемкости (минимизация потребления процессорного времени и соответственно памяти)
промис с реджектом по таймауту
источник

AZ

Artem Zuev in Node.js — русскоговорящее сообщество
Denis
промис с реджектом по таймауту
а кто за таймаутом следить будет =)
источник

И

Илья | 😶 in Node.js — русскоговорящее сообщество
Artem Zuev
а кто за таймаутом следить будет =)
rxjs мб ?
источник

D

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

AZ

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

D

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

AZ

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

AZ

Artem Zuev in Node.js — русскоговорящее сообщество
Denis
3 в секунду ты вообще не увидишь разницы в нагрузке, между 1 и 2 подходом
и на 300 не увидишь
3 в секунду на каждое соединение, коих около сотни, т.е. примерно 300 отправок пакетов в секунду, и в каждой отправке получается нужно создавать таймер
источник

D

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

АП

Алексей Попов in Node.js — русскоговорящее сообщество
Artem Zuev
Всем вечерочка бодрого. Вопрос для теоретиков ;)
Исходные данные - установленное WS-соединение с сотней клиентов
В секунду каждому клиенту отправляется от 2 до 5  (в среднем 3) пакетов с данными и должен придти в ответ пакет с результатом в течение 3 секунд

Т.к. это не HTTP-REST (или подобное), то отлавливать таймаут на ответ необходимо своими силами. Варианты реализации:
- при запросе создается таймер setTimeout() который отслеживает приход времени и срабатывает один раз во время наступления нужного момента. Итого имеем в максимуме 100 * 3 * 3 = 900 таймеров единомоментно, плюс постоянные процедуры создания/удаления таймеров по мере отправки запросов/получения ответов
- инициируется один таймер setInterval с интервальностью не более 50мс (т.е. 20 вызовов в сек), который проходит по всем "ждунам" (как выше писал около 900 в худшем варианте) и проверяет их "статус таймаута". Итого нет постоянных пересозданий, но есть риск в случае даже небольшой задержки в проходе, наслоения вызовов...
- третий вариант по сути разновидность второго с той лиш разницей, что вместо разового создания setInterval используется setTimeout - тем самым исключается наслоение циклов, но возвращается проблема постоянного пересоздания таймеров, просто в этом варианте он будет один, но "короткий"
А почему во втором варианте такой интервал выбран? Ждать надо строго не больше 3-х секунд?
источник

AZ

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