@nodejs_ru

Страница 1903 из 2748
Дмитрий
19.04.2018
07:41:11
Я не уверен что так принято, но это само простое решение

Семен
19.04.2018
07:41:53
Нода же хороша тем, что ты можешь манипулировать ивентлупом и обрабатывать процесс по частям, маленькую часть в этом цикле обработал, для всех пользователей, в следующем цикле еще одну часть, https://blog.scottnonnenberg.com/breaking-the-node-js-event-loop/

Егор
19.04.2018
07:42:39
Народ всем привет! Вопрос по Sequlize. Работаю над проектом, в котором все модели в базе имеют createdAt и udpatedAt по умолчанию. В файлах моделей и миграциях они не прпоисаны. Создаю свою модель, и эти поля, помимо моих объявленных полей с типами, не создались. Знает кто-нибудь, может быть нужно выставить timestamps: true где-нибудь?

Google
Дмитрий
19.04.2018
07:44:02
Нода же хороша тем, что ты можешь манипулировать ивентлупом и обрабатывать процесс по частям, маленькую часть в этом цикле обработал, для всех пользователей, в следующем цикле еще одну часть, https://blog.scottnonnenberg.com/breaking-the-node-js-event-loop/
Когда тебе приходит запрос который будет работать 2-3 минуты, никакой евентлуп не сработает. Он хорош когда надо в базу сходить, но если что-то надо считать, то приходится как-то выходить из ситуации

Есть например napa.js, но у неё потоки очень кастрированные

Есть всякие микросервисы

Дмитрий
19.04.2018
07:46:31
например?
Обработка данных

Семен
19.04.2018
07:50:41
Обработка данных
Её всегда можно пробовать бить на куски. Тут зависит от конкретной задачи

Дмитрий
19.04.2018
07:51:22
Её всегда можно пробовать бить на куски. Тут зависит от конкретной задачи
Угу, придут тебе два таких запроса. Это не решение

Alexander
19.04.2018
07:56:42
Её всегда можно пробовать бить на куски. Тут зависит от конкретной задачи
асинхронность и многопоточность это разные вещи. Представь, бывают такие ситуации, вот у меня обработка данных занимает 30 секунд, не связь с базой и т.д., а читый синхронный код. Как блин я её по кускам буду рубить и зачем? Руби или не руби, а выполнять всё это всё равно придётся и рано или поздно ивент луп подойдёт к выполнению этой операции, а значит завесит всё к чертям. Тут на помощь приходит многопоточность, что в принципе я и искал.

Alexander
19.04.2018
07:58:02
Да будет срач!

Alexander
19.04.2018
08:00:02
Есть например napa.js, но у неё потоки очень кастрированные

Google
Andriy
19.04.2018
08:02:55
Есть например napa.js, но у неё потоки очень кастрированные
В веб программировании потоки не использует ни один из следующих языков: php. Node, ruby, и вообще

Alexander
19.04.2018
08:03:22
сделай код асинхронным) https://github.com/caolan/async
>асинхронность и многопоточность это разные вещи.

Andriy
19.04.2018
08:03:37
Многопоточность в вебе - это очень сложно. Представь что у тебя 1000 запросов пришло, то у тебя 1000 потоков. Сервер сгорит просто.

Andriy
19.04.2018
08:04:06
К тому же тебе надо уведомить юзера о прогрессе например загрузки фото или видео.

Такие вещи делаются синхронно.

Yurii
19.04.2018
08:04:33
у тебя проблема, что Event loop будет блокирован, чтобы он не был блокирован - делай асинхронно. Элементарно же

Andriy
19.04.2018
08:04:35
Хочешь выносить. - используешь queue

Andriy
19.04.2018
08:04:51
Yaroslav
19.04.2018
08:04:53
вроде Go умеет, но суть не в этом
go умеет, но там язык компилируемый. вам может помочь многопроцессность, с помощью p2m к примеру можно поднять несколько нод и балансить их.

Sergey
19.04.2018
08:05:28
Да ты что?
Хотя бы почитай как реализовано чтение файлов в node

Yaroslav
19.04.2018
08:06:51
там кластер с одной точкой входа
я отвечал на первоначальный вопрос

об распределении нагрузки

Alexander
19.04.2018
08:06:59
К тому же тебе надо уведомить юзера о прогрессе например загрузки фото или видео.
загрузка фото и прочего это работа с вводом/выводом, там асинхронность. А я говорю о чистом синхронном коде, типа while (i < 9999999999999999999999999....

Труба
19.04.2018
08:07:13
Если я правильно вас понял, для управления патоками данных можно использовать rxjs.

Google
Andriy
19.04.2018
08:07:13
Насчет многопоточности в php



То же и в других языках

Andriy
19.04.2018
08:07:59
Я пповодил research в этом направлении

Alexander
19.04.2018
08:08:04
child_process запусти
да, уже подсказали выше )

Andriy
19.04.2018
08:08:37
Все что я понял - если у тебя не go - забудт про многопоточность в контексте веба

Sergey
19.04.2018
08:08:58
Это про php-fpm, а не про php

Yurii
19.04.2018
08:09:33
Yurii
19.04.2018
08:10:15
Sergey
19.04.2018
08:10:44
Andriy

Ты видать не представляешь как работает php

Alexander
19.04.2018
08:10:45
писать асинхронно ?
асинхронность это когда куски кода выполняются не подряд друг за другом, а когда они могут тусоваться между собой, грубо говоря. Это никак не создаёт того, что они выполняются параллельно.

Yurii
19.04.2018
08:11:26
Всмысле
ну тут, наверное, о том, что на сервере php запускается с веб-сервиса (apache, nginx) а не в чистом виде и сами веб-сервисы запускают в новом потоке выполнение скрипта

Andriy
19.04.2018
08:11:33
Проводя много времери на research, когда узнал что такое нода и весь этот хайп я решил разобраться чем же оеа так хороша

Google
Andriy
19.04.2018
08:12:36
Оказалось что нода это не так уж круто как все хайпают на нее

Alexander
19.04.2018
08:12:52
пфф https://caolan.github.io/async/docs.html#parallel
пфф parallel is about kicking-off I/O tasks in parallel, not about parallel execution of code.

Дмитрий
19.04.2018
08:13:31
Обьясни мне
Пхп каждый запрос в своём потоке обрабатывается

Ну если это fpm

Andriy
19.04.2018
08:14:01
Весь кайф в event driven development и том что более эффективно тратиться процессорное время. Но подумаешь оно тратиься на 30% эффективнее

Дмитрий
19.04.2018
08:14:04
И тогда возможна ситуация когда приходит 20 тяжёлых запросов и всё зависает ибо воркеры кончаются

Admin
ERROR: S client not available

Дмитрий
19.04.2018
08:15:14
Это смотря как ты все сконфижишь
Если у тебя есть тяжёлые запросы это единственный возможный вариант

И даже если есть просто долгие запросы, например обращение к другому приложению. Ибо в php нет асинэроности

Andriy
19.04.2018
08:18:20
И даже если есть просто долгие запросы, например обращение к другому приложению. Ибо в php нет асинэроности
Во первых php-fpm сохдает процессы а не потоки, во вторых guzzle в php работает через промисы так же как axios к примеру. Поэтому не мути)

Sergey
19.04.2018
08:18:56
Всмысле
Есть язык (python, pho, Ruby), есть интерпретатор (cpython, jython, php, hhvm, для руби тоже что-то есть), есть сервер приложения (hhvm, php-fpm, uwsgi, gunicorn, unicorn, passenger) и уже после этого идёт веб сервер. Скриншот который ты привёл, в рамках php описывает только php-fpm

Sergey
19.04.2018
08:21:15
Я же говорю про многопоточность в контексте веб приложений
В чистом php и hhvm без проблем можно писать многопоточно и асинхронно

И это будет веб приложение

Google
Дмитрий
19.04.2018
08:26:58
нужно больше серверов!
Нужно больше ядер!

Alexander
19.04.2018
08:31:16
что в итоге порешали? переходим на php?

Cenator
19.04.2018
08:31:52
Нет

Andriy
19.04.2018
08:32:22
Порешали то что не надо его гнобить)

Cenator
19.04.2018
08:32:40
Надо

Andriy
19.04.2018
08:32:50
Аргументируй)

??
19.04.2018
08:33:31
На python

Andriy
19.04.2018
08:36:37
Кстати, если вы думаете что node с его loop особенный, то знайте, что event loop можно сделать на любом языке. В php этонапример reActPHP или AMP. Вопрос только в целесообразности.

Vitaliy
19.04.2018
08:37:36
можно у джаве(фу) делать многопоточно, но зочем

Yurii
19.04.2018
08:37:37
Andriy
19.04.2018
08:37:55
В этом то и дело, незачем

Vitaliy
19.04.2018
08:38:16
ну foreach так реализован, ему на await пох

Alexander
19.04.2018
08:39:03
ну foreach так реализован, ему на await пох
чувак наоборот пытается доказать, что async функции в форыче сработают ПАРАЛЛЕЛЬНО с друг другом

это тоже бред

Vitaliy
19.04.2018
08:39:22
типо [].forEach() `for (let i = 0; i< [].length;i ++) { calback([i]) }`

Страница 1903 из 2748