Size: a a a

NodeUA - JavaScript and Node.js in Ukraine

2020 November 19

V

Vitaliy in NodeUA - JavaScript and Node.js in Ukraine
Yevhen
В даному випадку однією з вимог була мінімальна залежність від БД, тож використовувати її не вийде.
Те, що запит буде висіти, поки не проблема. Головне щоб сервіс продовжував відповідати на інші запити. Використання ws для нотифікацій було б непогано, але поки на фронті нема підтримки.
Я так розумію, у випадку з ws можна було б виконати генерацію в worker thread і відправити повідомлення клієнту коли все готово
По ідеї і з http можна відправити цю генерацію в воркер. Раз жодних данних не потрібно, лише месседж що все ок
источник

Y

Yevhen in NodeUA - JavaScript and Node.js in Ukraine
Vitaliy
По ідеї і з http можна відправити цю генерацію в воркер. Раз жодних данних не потрібно, лише месседж що все ок
Я правильно розумію, що цей варіант буде навіть краще ніж асинхронна ітерація з точки зору навантаження на сервер?(поки не доводилось працювати з worker threads)
источник

V

Vitaliy in NodeUA - JavaScript and Node.js in Ukraine
Ну так повинно бути)
Як мінімум це простіше
источник

Y

Yevhen in NodeUA - JavaScript and Node.js in Ukraine
Vitaliy
Ну так повинно бути)
Як мінімум це простіше
Дякую)
источник

С

Сергей in NodeUA - JavaScript and Node.js in Ukraine
Алексей Попов
если в таблицу не добавляются данные, это ещё может быть нормально
но если добавление есть - исползование uuid как pk в mssql это наидичайший случай, который просто убивает производительность вставки
Да и выборки\джойны по инту по идее должны быть производительней и отжирать меньше ресурса, плюс юиды занимают больше места на диске. Если БД не рискует стать супергигантской, а нужен уникальный иденфикатор в простратстве всех таблиц, то как вариант использовать 1 на всю БД сиквенс, генерящий int64 (как в постгрессе, например). Ну а единственный плюс юида, как было сказано выше, это когда уникальный ИД нужен в контексте нескольких баз.
источник

Т

Тёмыч in NodeUA - JavaScript and Node.js in Ukraine
господа, как удалить одинарные кавычки из строки?
источник

К

Кирилл in NodeUA - JavaScript and Node.js in Ukraine
Регулярку мб
источник

АП

Алексей Попов... in NodeUA - JavaScript and Node.js in Ukraine
Сергей
Да и выборки\джойны по инту по идее должны быть производительней и отжирать меньше ресурса, плюс юиды занимают больше места на диске. Если БД не рискует стать супергигантской, а нужен уникальный иденфикатор в простратстве всех таблиц, то как вариант использовать 1 на всю БД сиквенс, генерящий int64 (как в постгрессе, например). Ну а единственный плюс юида, как было сказано выше, это когда уникальный ИД нужен в контексте нескольких баз.
Да, это тоже. Но мне кажется, что эти издержки не так велики по сравнению с тем, что в случае вставки в середину кластеризованного индекса придётся переколбашивать весь файл на диске. Это лок на всё время считывая кусков, переразбивки и записи
источник

Т

Тёмыч in NodeUA - JavaScript and Node.js in Ukraine
Кирилл
Регулярку мб
та вот так и сделал... но как в том анекдоте, есть нюанс
источник

Y

Yevhen in NodeUA - JavaScript and Node.js in Ukraine
Тёмыч
та вот так и сделал... но как в том анекдоте, есть нюанс
Какой нюанс?
источник

Y

Yevhen in NodeUA - JavaScript and Node.js in Ukraine
Vitaliy
Ну так повинно бути)
Як мінімум це простіше
Я забув сказати, що проект на TS, а воркери працюють тільки з JS кодом. І виявилось, що для поточної структури проекту це не так щоб зовсім просто зробити.
источник

V

Vitaliy in NodeUA - JavaScript and Node.js in Ukraine
Тс же розуміє js  код
источник

Y

Yevhen in NodeUA - JavaScript and Node.js in Ukraine
Vitaliy
Тс же розуміє js  код
Так, але весь проект на TS і потрібно викликати існуючий код із воркера.
Ну і лінтер не дозволяє писати JS код
источник

MD

Mikhail Demidoff in NodeUA - JavaScript and Node.js in Ukraine
сталкивался с этим на проекте, секунду
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
Yevhen
Я забув сказати, що проект на TS, а воркери працюють тільки з JS кодом. І виявилось, що для поточної структури проекту це не так щоб зовсім просто зробити.
ну если тс на столько важен в том проекте, то никто не мешает заюзать тс-нод пакет.
Ну или // @ts-ignore и нет проблем
источник

MD

Mikhail Demidoff in NodeUA - JavaScript and Node.js in Ukraine
я создавал js файл,  и прокидывал в воркер пас, в котором было следующее:
/* eslint-disable prettier/prettier */
/* eslint-disable @typescript-eslint/no-var-requires */
const path = require('path');

require('ts-node').register();
require(path.resolve(__dirname, './worker.ts'));


а сам воркер был на ТС, но это dev версия с ts-node
источник

Y

Yevhen in NodeUA - JavaScript and Node.js in Ukraine
Спасибо! Попробую этот вариант

До этого остановился на генерации отдельного бандла для воркера, но как написали выше, есть один нюанс) Такой вариант не будет работать с nodemon
источник

Т

Тёмыч in NodeUA - JavaScript and Node.js in Ukraine
Yevhen
Какой нюанс?
Та там просто нужно было убрать кавычки только вокруг слов, но оставить те, которые внутри слов
источник

Y

Yevhen in NodeUA - JavaScript and Node.js in Ukraine
Тёмыч
Та там просто нужно было убрать кавычки только вокруг слов, но оставить те, которые внутри слов
Тогда только регулярки.
Но Вы же знаете шутку про регулярки?)
источник

Т

Тёмыч in NodeUA - JavaScript and Node.js in Ukraine
Yevhen
Тогда только регулярки.
Но Вы же знаете шутку про регулярки?)
Ага, теперь у меня две проблемы)
источник