GG
Это все к кластерам относится, нет?
точнее наоборот) но в целом, похоже
Pavel
ты просто вызываешь по сути 2 ую ноду, которую используешь для блокирующих операций. потом по завершению операции отдаешь результат мастер процессу и закрываешь чайлда
Pavel
профит в отстутствии 4 запущенных нод при кластере
Nikita
Ох ох, что ты сейчас написал, звучит жестко.
Nikita
Я вообще ничего не понял.
GG
вообщето кластеры, сложнее форка)
Nikita
точнее наоборот) но в целом, похоже
У меня настройки с базой сейчас по умолчанию, до 5 пулов или как это пишется, если поднять количество, Профит будет?
Pavel
Я вообще ничего не понял.
https://nodejs.org/dist/latest-v8.x/docs/api/child_process.html#child_process_child_process_fork_modulepath_args_options смотри в эту сторону
Aleksand
Я не понимаю, почему так.
учись профилировать код, это едва ли не самый главный навык
Aleksand
вообщето кластеры, сложнее форка)
кластеры используют форк, чем они сложнее?
GG
кластеры используют форк, чем они сложнее?
тем что кластеры, это порождения форка)
GG
чувак говорит, форк для него сложно, зато кластеры он юзает
Nikita
https://medium.freecodecamp.org/scaling-node-js-applications-8492bd8afadc
Nikita
Вот.
Nikita
Код из 5 строчек.
Nikita
Там используется модуль кластер и потом вызывается форк
Nikita
На каждый cpu
Aleksand
https://medium.freecodecamp.org/scaling-node-js-applications-8492bd8afadc
тебе зачем вообще кластер? ты с больной головы на здоровую валишь проблему
Nikita
Не нужна мне эта херь, я хочу узнать, как мне повысить скорость ответа.
Nikita
Нет
Nikita
Разные вещи
Aleksand
профилировать === дебажить?
в общем случае нет
Nikita
профилируй запросы, профилируй свой код
Есть статья? Потому, что я сейчас даже на фронте не умею этого делать.
uts
Есть статья? Потому, что я сейчас даже на фронте не умею этого делать.
На фронте готовый инструмент прямо в твоём браузере, Perfomance вкладка
Aleksand
На фронте готовый инструмент прямо в твоём браузере, Perfomance вкладка
на ноде тот же инструмент можно использовать
Nikita
Если я не хера не понимаю, то что я могу.
Aleksand
) понимать графики то надо
да, программирование это боль, надо учиться новому всегда
Nikita
Ну да, не спорю. Я полгода назад, даже не знал, для чего нужен реакт и вообще, ничего кроме того как подключить плагин для jq
Михаил Макарычев
Nikita
Я sequalize использую.
Nikita
А там обычный findAll()
Kons
а после получения объектов из базы что происходит? Перебор в цикле?
Nikita
Нет, просто отправляю в ответ.
Nikita
Json.stringify
Михаил Макарычев
Я sequalize использую.
А если черед обычный драйвер выполнить запрос, то сколько?
Nikita
Не пробовал, надо попробовать.
ikasymov
че то не помог мне async await let User = async (function () { this.name = await (getName()); }); let parser = new User(); console.log(parser.name);
ikasymov
если внутри User вызывать name то все норм
GG
User - это промис
GG
const user = async (function () { const name = await getName() return name }) user.then(name => console.log(name))
Kons
class User { async getName() { if (!this.name) { this.name = await getName(); } return this.name } } async function someAsyncFunction() { const user = new User(); const userName = await user.getName(); // Do something with user and userName } someAsyncFunction();
Михаил Макарычев
Не пробовал, надо попробовать.
И если кластеризацию настроить, то, может, быстрее будет
Maxim
всем привет! Парни, юзал кто нибудь rabbitMQ ?
Maxim
у меня пара вопросов по нему
Kons
всем привет! Парни, юзал кто нибудь rabbitMQ ?
Использовал его для организации очереди задач.
Maxim
на node.js
Maxim
?
Kons
да :)
Maxim
Можешь подсказать? Я прям вообще ни черта не понимаю как его запустить. )) Сейчас опишу суть проблемы.
Dmitry
у меня пара вопросов по нему
тоже работал, в чем вопрос?
Maxim
оу, спасибо парни. Секунду
Maxim
Есть первый урок "Hello World"
Maxim
я его полностью повторил, но у меня не запускается отправка
Maxim
сейчас скину ошибку
Maxim
//Users/alyoshinmaxim/Desktop/rabbitmq-tutorials/send.js:4 conn.createChannel(function(err, ch) { ^ TypeError: Cannot read property 'createChannel' of undefined at /Users/alyoshinmaxim/Desktop/rabbitmq-tutorials/send.js:4:7 at /Users/alyoshinmaxim/Desktop/rabbitmq-tutorials/node_modules/amqplib/callback_api.js:16:10 at Socket.<anonymous> (/Users/alyoshinmaxim/Desktop/rabbitmq-tutorials/node_modules/amqplib/lib/connect.js:167:18) at Object.onceWrapper (events.js:316:30) at emitOne (events.js:115:13) at Socket.emit (events.js:210:7) at emitErrorNT (internal/streams/destroy.js:62:8) at _combinedTickCallback (internal/process/next_tick.js:102:11) at process._tickCallback (internal/process/next_tick.js:161:9) MacBook-Pro-Alyoshin:rabbitmq-tutorials alyoshinmaxim$
Kons
Это условие выполнено? This tutorial assumes RabbitMQ is installed and running on localhost on standard port (5672). In case you use a different host, port or credentials, connections settings would require adjusting.
Aleksand
Dmitry
Предположу что коннект не прошел
Maxim
https://github.com/maxinakenty/rabbitmq-tutorials
Maxim
https://groups.google.com/forum/#!topic/rabbitmq-users/JNhv89yXW24
Kons
amqp.connect('amqp://localhost', function(err, conn) { conn.createChannel(function(err, ch) {}); }); Они не проверяют наличие ошибки в примере. Скорее всего ошибка подключения или что-то типа того.
Maxim
Это решение не помогает
Kons
https://github.com/maxinakenty/rabbitmq-tutorials/blob/master/send.js#L4 Тут надо проверить, что подлючение действительно удалось
Dmitry
раббит то вообще запущен локально? )
Maxim
я все сделал как в уроке, но ни хрена не работает. Всё ещё осложняется тем, что я из фронта резко на бэк переключился и ни чего вооще не понимаю что происходит
Maxim
уж извините за тупняки такие
Kons
Реббит это отдельный сервис, который должен быть запущен на той же машине, что и нода. Как база данных. В ней будут подключаться продюсер и консюмер.
Kons
В самом начале урока есть врезка про то, что нужно убедиться, что рэббит запущен и функционирует
Maxim
эмм. извини за тупой вопрос, но как его запустить?
Maxim
ок
Dmitry
Слово docker о чем либо говорит?
Maxim
Maxim
да
Dmitry
https://hub.docker.com/_/rabbitmq/
Dmitry
Качайте официальный докер образ и запускайте вначале сервис локально и все заработает