Форум программистов, компьютерный форум, киберфорум
Node.js
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 15.06.2022
Сообщений: 6

Запуск длительных задач через веб-интерфейс, их параллельное выполнение

19.06.2024, 17:55. Показов 693. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем добра!

У меня есть сервер: NGINX + NodeJS + Express.

Там же собрана и работает админка, суть которой должна заключаться в том, чтобы:
1) просматривать список доступных задач по обработки данных.
2) запускать, либо останавливать ту или иную задачу.
3) видеть статус каждой задачи.

Отдельная задача по обработки данных, может длиться несколько часов.. а все запущенные задачи при этом должны выполняться параллельно.

Собственно вопрос: как организовать работу таких задачи?.. подозреваю, что нужно запускать системные процессы, но может быть в ноде есть библиотеки?

Прошу навести на верный путь для поиска решения.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.06.2024, 17:55
Ответы с готовыми решениями:

WCF Распределить выполнение длительных вычислительных задач между двумя сервисами
Имеются данные, по которым необходимо посчитать и получить результат. Расчеты занимают достаточно длительное время (~ 20 минут и больше)....

Параллельное выполнение задач
Всех приветствую, только начал изучать C++ и вообще Linux (работаю под Ubuntu), хочу написать консольную программу, появилось несколько...

Параллельное выполнение задач
В ходе выполнения программы, несколько раз выполняется метод, который принимает и возвращает значения типа string и выполняется долго: ...

12
 Аватар для pincet
1654 / 1153 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
19.06.2024, 19:15
нода вроде асинхронна сама по себе
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3798 / 1626 / 428
Регистрация: 14.03.2022
Сообщений: 4,046
19.06.2024, 22:17
Цитата Сообщение от pincet Посмотреть сообщение
нода вроде асинхронна сама по себе
Такой же однопоточный JS...

Добавлено через 2 минуты
mir0lub, есть подозрение, что ты решил взять на себя больше, чем можешь унести...

По таким пространным "описаниям" мало что можно посоветовать. Старайся показать хоть какую-то конкретику, тестовый пример...
Тогда можно что-то предложить как решение.
0
0 / 0 / 0
Регистрация: 15.06.2022
Сообщений: 6
19.06.2024, 22:59  [ТС]
Цитата Сообщение от krvsa Посмотреть сообщение
mir0lub, есть подозрение, что ты решил взять на себя больше, чем можешь унести...
а что делать.. недавно начал осваивать ноду, вот и пытаюсь разобраться.. коли взялся за гуж - не говори, что не дюж

ChatGPT рекомендовал использовать библиотеку child_process, и по моему это то, что мне нужно.
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3798 / 1626 / 428
Регистрация: 14.03.2022
Сообщений: 4,046
19.06.2024, 23:20
Цитата Сообщение от mir0lub Посмотреть сообщение
недавно начал осваивать ноду
Причем тут Нода... Речь про JS вообще и про построение алгоритмов в частности.
Не зная языка ты не построишь ничего путнего, какое бы огромное желание у тебя не было бы.

Цитата Сообщение от mir0lub Посмотреть сообщение
ChatGPT рекомендовал использовать библиотеку child_process, и по моему это то, что мне нужно.
Ну тут у тебя без вариантов!
С таким советчиком - море по колено.
0
0 / 0 / 0
Регистрация: 15.06.2022
Сообщений: 6
19.06.2024, 23:40  [ТС]
Цитата Сообщение от krvsa Посмотреть сообщение
Ну тут у тебя без вариантов!
С таким советчиком - море по колено.
По крайней мере хоть что-то.. раз бородатые программисты молчат.
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3798 / 1626 / 428
Регистрация: 14.03.2022
Сообщений: 4,046
20.06.2024, 09:17
mir0lub, мы ванговать не умеем...
0
0 / 0 / 0
Регистрация: 15.06.2022
Сообщений: 6
20.06.2024, 10:40  [ТС]
Цитата Сообщение от krvsa Посмотреть сообщение
mir0lub, мы ванговать не умеем...
да-да-да.. стандартный ответ тех, кто не может конкретно ответить на вопрос, но зачем-то вступил в дискуссию

чуть позже, как только реализую, напишу сюда - получилось у меня или нет.. вдруг кому пригодится решение
0
Эксперт .NET
 Аватар для Usaga
14078 / 9295 / 1347
Регистрация: 21.01.2016
Сообщений: 34,895
20.06.2024, 10:58
Цитата Сообщение от mir0lub Посмотреть сообщение
Отдельная задача по обработки данных, может длиться несколько часов.. а все запущенные задачи при этом должны выполняться параллельно.
Ну. Получается, что нода просто запрос на начало задачи получает? Я бы тут очередь прикрутил. На базе NATS или RabbitMQ или ещё чего похожего. И обработчики на той же ноде сделал.

Добавлено через 1 минуту
Только точно ли тебе ВСЕ задачи надо параллелить? Прямо все? Сервер не порвётся? Штук N обработчиков не хватит?
0
0 / 0 / 0
Регистрация: 15.06.2022
Сообщений: 6
20.06.2024, 12:37  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Только точно ли тебе ВСЕ задачи надо параллелить? Прямо все? Сервер не порвётся? Штук N обработчиков не хватит?
На данном этапе в админку будет заходить только один пользователь, поскольку сама админка служит лишь визуальным интерфейсом тех процессов, за которыми нужно наблюдать.. и при необходимости запускать/останавливать.

Под отдельной задачей подразумевается парсинг больших xml в базу данных по расписанию. Одновременно таких задач максимум 10.. ну и соответственно лист ожидания: какая-то задача завершилась > запустилась другая из очереди.. и тд.

Вопрос в методе создания таких процессов через веб-интерфейс.
0
Эксперт .NET
 Аватар для Usaga
14078 / 9295 / 1347
Регистрация: 21.01.2016
Сообщений: 34,895
20.06.2024, 12:53
mir0lub, а кто этими задачами управлять должен? Кто им файлы скармливать будет? Все задачи одинаковые? Т.е. одно и то же приложения, десять раз запущенное?

Мне кажется, что тут очередь тоже подходит. Одновременно с основным процессом ноды (который за админку отвечает) запускауются и 10 экземпляров воркеров (worker), которые подписываются на один топик очереди. Основной процесс (или другой) по расписанию пихает в этот топик сообщения. Воркеры их расхватывают в каком-то (не важно каком) порядке. Кто чем занят воркеры рапортуют в общую базу. Админка из этой базы и показывает статистику.

Я это как-то так вижу, если навскидку.
1
409 / 301 / 112
Регистрация: 28.08.2013
Сообщений: 787
20.06.2024, 13:37
Мой вариант.
Node.js (web-сервер) предоставляет API для необходимых задач. Задачи можно запускать в отдельном процесса, по средствам модудя Cluster (еще один экземпляр ноды (который выполняет долгий скрипт), ffmpeg, python (ИИ), ...). Повесить слушателя событий на std и нужные данные (статус выполнения, ...) отправлять в БД.
Можно и без БД, и в реальном времени, но это потребует более глубокого знания и понимания асинхронности и работы Node.js.
0
Эксперт .NET
 Аватар для Usaga
14078 / 9295 / 1347
Регистрация: 21.01.2016
Сообщений: 34,895
20.06.2024, 14:58
kidASM, да на самом деле можно worker_threads использовать и не греть голову) Решение не сильно масштабируемое, но максимально простое. У меня уже профдиформация пошла, я по привычке начал воротить систему расширяемую, с этими очередями.

mir0lub, реально, один единственный процесс с веб-приложением может просто треды порождать для каждой зачади. Обмен данными будет внутри приложения, без очередей и баз.

Пора мне в отпуск похоже.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.06.2024, 14:58
Помогаю со студенческими работами здесь

Параллельное (многопоточное) выполнение мелких задач
Давно не чего не писал на C#, а тут понадобилось кое что сделать, задача такая, есть текстовый файл на много гигобайт, мне надо выдернуть...

Не могу зайти в веб интерфейс и множество других не задач
Здравствуйте, не так давно купил Dir-300, был dir-100. Стоит оптика от Ростелекома. Сегодня, когда подключал новый роутер, заметил что ТВ...

Выполнение длительных вычислений и операций в отдельном потоке
Добрый вечер. Возникла проблема с вычислениями. Из базы данных (файл) читаются числа и выполняются с ними операции.....

Работа с 1С через веб интерфейс
Доброго всем времени суток! сейчас рабоаю как пользователь. Заинтересовал меня такой момент в работе с 1С: нужно организовать...

Как оценить время затраченное на выполнение длительных операций
Всем здравствуйте. Как точно (миллисекунды) и грамотно оценить интервал времени, затраченный на выполнение, например, следующего...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru