170 похожих чатов

Всем привет у меня на ноде надо генерировать документ файл (очень

дорогая операция)
я же получается могу это разделить на много worker threads?
вопрос: если будет 1000 запросов, могу ли я создать 1000 воркеров где каждая будет создавать файл?

допустим у меня 2 ядра, для количества воркеров есть лимиты?

5 ответов

18 просмотров

Я бы сделал на вашем месте действительно асинхронную генерацию документа, расширил бы uv_threadpool_size побольше и все, посмотрел бы гипотезу по скорости. Если мало, то накапливал бы файлы в глобальные батчи по N штук, потом в promise.all[fs.write, ..., fs.write] n, опять мало, уже треды да, но немного, и только на синхронную генерацию документа

Может ограничиться одним дополнительным потоком, и пусть он из очереди забирает задания и создаёт файлы? Какие вообще показатели у задачи? Какое количество файлов в какое время надо создавать, и за сколько создаётся файл?

Abdulgafur-Bersugir Автор вопроса
Алексей Попов
Может ограничиться одним дополнительным потоком, и...

Один юзер может за раз заказать 10 файлов которые будут генерироваться по ~3 минуты При таком раскладе один тред с очередями будет очень долго выполнять все

Abdulgafur Bersugir
Один юзер может за раз заказать 10 файлов которые ...

Ну сделай два треда 🤷‍♂ Твои два ядра всё равно не смогут выполнить тысячу запросов быстрее. Нужно масштабироваться, другое железо искать или запускать несколько серверов

Похожие вопросы

Обсуждают сегодня

Здравствуйте, хочу сделать HelloWorld в консоли Дельфи, но функция API ничего не выводит, что я делаю не так? program Hello; {$APPTYPE CONSOLE} uses System.SysUtils, WinAPI.Wi...
Sergey Vinogradov
20
лучше скажите, причём тут паскаль?
Alexey Kulakov
23
Вопрос на перед, на следующую пятницу. Сколько строк кода можно вешать на одного программиста, понятно что если проект хорошо написан то можно и миллион. Но есть же где то пре...
AlekseyK Kluchnikov
31
Немного оффтопа: а кто на чем сидит для осдева в плане ide/редактора? Последнее время сидел на vscode, но я его прям не могу нормально воспринимать, перешел на сlion, но меня...
Evg Resh
29
#include <stdio.h> #include <stdlib.h> #include <time.h> int** generate_table(int size_matrix) { int** matrix = (int**)malloc(size_matrix * sizeof(int*)); for (int i ...
Чувак
1
@PerlBanjoBot use v5.38; sub split_on_cond($arr, $cond) { ($a, $b) = ([], []); push @{ $cond->($_) ? $a : $b }, $_ for @$arr; ($a, $b) } use Data::Dumper; warn Dumpe...
Sergei Zhmylove
10
Всем привет! как узнать, что текст в TSkLabel был выведен сокращенным ? Есть функция для TLabel которая позволяет определить , что текст выведен сокращенным function TFrmMai...
DELPHI SOLUTIONS
6
Вот объясните, как это работает: Вот есть допустим unix-подобная система, и программа запускает допустим printf или fork, как это передается ядру, и как оно обрабатывать начин...
Егор
14
Дебил? Я ищу друга
Bitard 228
27
У меня это всегда вопрос вызывало.. Нафига писать код так, чтобы потом ошибки вылавливать?
Nik
44
Карта сайта