Size: a a a

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

2020 December 12

СП

Сергей Пограничный... in Node.js — русскоговорящее сообщество
Manu
Не думаю что хоть что-то может его сделать проще)
Ежедневные задачи, где нужен трединг решаются сейчас в пару строчек.
std::for_each(execution::par, begin(arr), end(arr), [] (T el) { func(el); });
Это я распаралелил работу с контейнером arr и к каждому элементу применил функцию el.
Также есть std::async и т.д.
источник

СП

Сергей Пограничный... in Node.js — русскоговорящее сообщество
Pavel Shakhov (pongo)
ну так в ноде семафоры тоже нужны
Примитивы синхронизации нужны не совсем для повседневных задач, скажите какой-нибудь кейс, для плюсов
источник

PS

Pavel Shakhov (pongo... in Node.js — русскоговорящее сообщество
Сергей Пограничный
Примитивы синхронизации нужны не совсем для повседневных задач, скажите какой-нибудь кейс, для плюсов
redis.get('key', function(err, value) {
 redis.set('key', value * 2);
});
источник

PS

Pavel Shakhov (pongo... in Node.js — русскоговорящее сообщество
для плюсов? не знаю
источник

СП

Сергей Пограничный... in Node.js — русскоговорящее сообщество
Pavel Shakhov (pongo)
redis.get('key', function(err, value) {
 redis.set('key', value * 2);
});
Редис асинхронный.
источник

PS

Pavel Shakhov (pongo... in Node.js — русскоговорящее сообщество
Сергей Пограничный
Редис асинхронный.
это код на ноде. если два пользователя одновременно вызовут ту функцию, то будет фиговина
источник

СП

Сергей Пограничный... in Node.js — русскоговорящее сообщество
Если инстанс сервера один, то это не случится, если несколько логично сделать redis транзакцию
источник

PS

Pavel Shakhov (pongo... in Node.js — русскоговорящее сообщество
Сергей Пограничный
Если инстанс сервера один, то это не случится, если несколько логично сделать redis транзакцию
почему не случится? операция же асинхронная. get вызвался, в промежутке кто-то еще раз вызвал функцию.
источник

PW

Pan Włodzimierz in Node.js — русскоговорящее сообщество
Pavel Shakhov (pongo)
У меня маловато опыта, чтобы оценить архитектуру в целом. Да и кода пока маловато.

Попробуй дальше писать код и тесты - увидишь, помогает ли тебе архитектура или мешает
ну ладно
источник

PW

Pan Włodzimierz in Node.js — русскоговорящее сообщество
мне честно говоря больше всего интересно было с сидером, фактори для юзера и тестами
источник

АП

Алексей Попов... in Node.js — русскоговорящее сообщество
Manu
Хз помню в универе нас гоняли по плюсам. Все эти семафоры и треды все мозги съели
Семафоры и треды не связаны с плюсами
Это понятия ос, а не плюсов как языка программирования
Тебе и в джабе нужно будет этим пользоваться и понимать
источник

СП

Сергей Пограничный... in Node.js — русскоговорящее сообщество
Pavel Shakhov (pongo)
почему не случится? операция же асинхронная. get вызвался, в промежутке кто-то еще раз вызвал функцию.
Насколько я изучал вопрос, redis имеет внутреннюю очередь и т.к. он асинхронный по хорошему его клиент в ноде это один инстанс - это синглтон. На одном клиенте оба не вызовут get одновременно, но даже если мы так позволим вызвать второму в этот промежуток - с одним инстансом сервера, то все равно упрется во внутреннюю очередь Redis, ответ сначало придет тому, кто первый спросил, тот и отправит set первым, я не прав?
источник

СП

Сергей Пограничный... in Node.js — русскоговорящее сообщество
Вот в postgres буквально одновременно мы принимаем транзакции и делаем с ними что-то из-за механизма многоверсионности.
источник

PS

Pavel Shakhov (pongo... in Node.js — русскоговорящее сообщество
Сергей Пограничный
Насколько я изучал вопрос, redis имеет внутреннюю очередь и т.к. он асинхронный по хорошему его клиент в ноде это один инстанс - это синглтон. На одном клиенте оба не вызовут get одновременно, но даже если мы так позволим вызвать второму в этот промежуток - с одним инстансом сервера, то все равно упрется во внутреннюю очередь Redis, ответ сначало придет тому, кто первый спросил, тот и отправит set первым, я не прав?
user1: redis.get('key') -> 1
user2: redis.get('key') -> 1
user1: redis.set('key', 1 x 2) -> 2
user2: redis.set('key', 1 x 2) -> 2
источник

СП

Сергей Пограничный... in Node.js — русскоговорящее сообщество
Pavel Shakhov (pongo)
user1: redis.get('key') -> 1
user2: redis.get('key') -> 1
user1: redis.set('key', 1 x 2) -> 2
user2: redis.set('key', 1 x 2) -> 2
Окей, я понял, транзакции
источник

ТК

Таймураз Кайтмазов... in Node.js — русскоговорящее сообщество
Сергей Пограничный
Вот в postgres буквально одновременно мы принимаем транзакции и делаем с ними что-то из-за механизма многоверсионности.
Они решают разные задачи и делают это по-разному
источник

СП

Сергей Пограничный... in Node.js — русскоговорящее сообщество
Таймураз Кайтмазов
Они решают разные задачи и делают это по-разному
Спасибо за этот итог
источник

ТК

Таймураз Кайтмазов... in Node.js — русскоговорящее сообщество
Тьфу, я без контекста
Редис во время чтения старается как можно быстрее ответить, а вот во время записи локает всю базу, насколько я знаю. Механизма транзакций как в постгресе нет, где можно залокать данные на разном уровне
источник

A

Aleksandr in Node.js — русскоговорящее сообщество
Насколько хорошая идея в магазин на ноде 1с интегрировать?
источник

ТК

Таймураз Кайтмазов... in Node.js — русскоговорящее сообщество
Aleksandr
Насколько хорошая идея в магазин на ноде 1с интегрировать?
Если нет выбора- какая разница?
источник