Akim
Since JavaScript is single-threaded when a CPU-intensive task runs, it blocks the main thread and no other code executes until the task completes. Without using other threads, the only way to speed up a CPU-bound task is to increase the processor speed. В JS видимо та же фигня
Akim
Но в отличии от python и php в ноде оказывается это возможно сделать The node:worker_threads module enables the use of threads that execute JavaScript in parallel. Подробности
MDWIT
Сколько сервисов сравнивал, нода всегда проигрывала. Раз в 3-10
смотря как тестировать) например производительность веб сервера на bun выше чем у gin и доходит до fasthttp, а fastify для nodejs работает на уровне gin при этом гошное приложение работает сразу в многопоточном режиме, а приложения ноды работают на одном, но внутри раскидывают через воркинг треды нагрузку
Eugene
Ребят, всем привет Подскажите пожалуйста как мне засинхронить получение из каналов данных метод main() Создает вейт группу 2 канала jobs и reparse 2 горутины go worker(1, jobs, reparse, &wg) go worker(2, jobs, reparse, &wg) занимаются парсингом урлов из jobs - когда отдает 404 то нужно чтобы URL записывался в канал reparse Также есть горутина go reparseWorker(3, reparse, &wg) Которая поидее должна разобрать все что попадет в reparse Но как это сделать я чет спотыкнулся об закрытие каналов ... Подскажите пожалуйста - как правильно это сделать Вот рабочий пример, но кажется что что то не то.. https://go.dev/play/p/fYtjZVY1wXJ
Maxim
Всем Привет, делаю update в базе: insert or update on table "a" violates foreign key constraint "fk_b_a" Кажется, что кривой fk, потому что в консоли INSERT INTO a ("b_Id") VALUES ('00000000-0000-0000-0000-000000000000')
Maxim
100% кривой
запрос?
Maxim
или модельки?
kostyaBro
Нужен экстрасенс
Maxim
Просто, у меня create работает
Илья
Просто, у меня create работает
Можешь показать миграции? Создание таблицы и ключа
kostyaBro
Вроде должно сработать, прошлое закрытие конечно надо убрать
Eugene
fatal error: all goroutines are asleep - deadlock!
Maxim
Можешь показать миграции? Создание таблицы и ключа
CREATE TABLE IF NOT EXISTS b ( "pk_id" uuid DEFAULT public.uuid_generate_v4(), CONSTRAINT b_pkey PRIMARY KEY ("pk_id") ) CREATE TABLE IF NOT EXISTS a ( "pk_id" uuid DEFAULT public.uuid_generate_v4(), "b_id" uuid NOT NULL, CONSTRAINT a_pkey PRIMARY KEY ("pk_id"), CONSTRAINT fk_b_a FOREIGN KEY ("b_id") REFERENCES b("pk_id") ON DELETE CASCADE )
Илья
Перед добавлением айди в таблицу А он должен быть в таблице В
Илья
Вроде ошибка об этом и говорит
Илья
или нужно наоборот?
Maxim
у меня в базе уже есть сущность б
Maxim
я пытаюсь обновить (добавив сущность а)
Илья
в таблице б есть данные?
Maxim
да
kostyaBro
Ругается
Да затупил, с телефона иду) по логике надо закрыть после того как все туда отдал, в твоём случае получается в воркерк, но это ошибка будет
kostyaBro
Щя подумаю
Maxim
res = tx.Where("...").Updates(b), b - структура, в которой есть структура а
Maxim
да, я не понимаю откуда он его создает
kostyaBro
Надо по другому логику построить...🤔
Илья
Надо по другому логику построить...🤔
по идее нужно закрывать канал респонсов только после выполнения всех воркеров
Илья
да, я не понимаю откуда он его создает
Какой фреймворк используешь? Покажи сам код
Maxim
можешь подсказать, куда копать?
Maxim
или без кода вообще непонятно
Илья
покажи сам код горм
Илья
кроме той одной строки
Maxim
моделек?
Otabek
Привет всем, я хочу удаленно подключиться к postgres в сервисе. Но сервер работает только с VPN. Я не могу подключиться даже при включенном VPN. Что я могу сделать в этом случае?
Илья
моделек?
нет, gorm запрос https://gorm.io/docs/update.html смотрел это?
Maxim
нет, gorm запрос https://gorm.io/docs/update.html смотрел это?
а он так и выглядит, только вместо троеточия условия на фильтрацию
kostyaBro
по идее нужно закрывать канал респонсов только после выполнения всех воркеров
Вот да @bloodrain777 я бы написал совсем по другому. Сделал бы функцию раннер воркеров и тым бы разрулил. Сейчас не могу показать пример. Но Илья правильно сказал. Например Ты можешь создать wg для воркеров дождаться и закрыть
kostyaBro
Других вариков не вижу, везде ошибка
Eugene
https://go.dev/play/p/zvZgrBkmLj5
Спасибо, в логе видно что формат выдает только Reparse google.com, а должен еще instagram.com
kostyaBro
Спасибо, в логе видно что формат выдает только Reparse google.com, а должен еще instagram.com
Как-то на собесах задачка с воркерами легко щелкалась, тут чтото не то, надо подумать, наверное лучше с нуля подойти к решению. Можно добавить select, done. Кстати я видел Instagram
Eugene
Вот да @bloodrain777 я бы написал совсем по другому. Сделал бы функцию раннер воркеров и тым бы разрулил. Сейчас не могу показать пример. Но Илья правильно сказал. Например Ты можешь создать wg для воркеров дождаться и закрыть
Я бы согласился с вами, но пока честно другого варианта не вижу, опыта в го 1 неделя так в жизни на пхп пишу, сложно пока в голове собрать асинхрон этот :(
kostyaBro
Но сейчас не смогу больше помочь, go gum()
Илья
да
а как ты получил принт вот того инсерта? я думаю, что неправильный запрос
Otabek
Может порт не прокинул? Как бд зажеплоена?
Я подключаюсь к базе данных с помощью ssh в datagrip, но при подключении из pgx я не могу подключиться по тайм-ауту?
Илья
ошибка была, вот он и показался
тогда скинь модельки и код, попробую у себя запустить
kostyaBro
Как я понял ты на разные порты стучишься
Kate
Спасибо, в логе видно что формат выдает только Reparse google.com, а должен еще instagram.com
сорри, да, репарса тоже надо дождаться https://go.dev/play/p/n3fIZKwdx06
Илья
в чем прикол передавать вейтгруппу, когда есть деферы?
Eugene
в чем прикол передавать вейтгруппу, когда есть деферы?
Да прикола нету вообще никакого, просто не знаю как сделать по другому вот и все Пришел к вам за помощью
Otabek
Звучит как будто порт на который стучишься закрыт
телнет не работает на порту 30032. Я так понимаю, я могу подключиться к бд, если 30032 порт открыт?
Melbourne Channel
Dont use ssl with golang. Use other solutions like nginx reverse proxy for ssl
using reverse proxy is slower than just using tls terminator on golang side. anything faster than can use golang directly? tls alternative?
Melbourne Channel
Or u can look on fasthttp
looking for tls alternative for fasthttp coz using fasthttp now already
Кіт ✙
А хедере чо
и эти люди потом бэкенды клепают
kostyaBro
И его можно настроить любой
Sanity = nil
чо юзать для системного программирования на гошке?
Andrei
отключение гк)
Sanity = nil
cgo)
вы расстроили кошко-жену
Sanity = nil
😦
Илья
вы расстроили кошко-жену
Просто ты выбрал не совсем тот язык для системного программирования
Sanity = nil
да очеидно, я чисто чтобы с теорией ознакомился, думал на плюсах пробовать но думаю сложновато будет, вот и решил за го спросить