Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.02.2024, 15:24
Аватар для fxobject
Кандидат Javascript-наук
Отправить личное сообщение для fxobject Посмотреть профиль Найти все сообщения от fxobject
 
Регистрация: 01.03.2021
Сообщений: 138

eventLoop node
Все добра!
Господа есть вот такая небольшая задача
имеем несколько очередей выполнения задач.
одни из задач - "неприоритетные" по кругу перебираются задания и выполняются. По мере выполнения идет переход к следующей задачи данной категории.
Но есть задачи, которые выполняются по мере поступления данных. Типа - "прерывания"
Их нужно выполнять максимально быстро, буквально бросать все и только после их выполнения опять переходить на перебор задач из очереди.
т.е. фактически необходим приоритет в eventLoop.
пока еще не вникал в материал, подскажите, кто сталкивался или знает - что либо подобное можно организовать с Node?
спасибо
Ответить с цитированием
  #2 (permalink)  
Старый 19.02.2024, 16:06
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,791

А есть причина тому, что у вас все задачи в одной очереди и, судя по всему, одним консьюмером обрабатываются?
Может стоит просто сделать несколько очередей с консьюмером(ами) для каждой из них?
Ответить с цитированием
  #3 (permalink)  
Старый 19.02.2024, 16:51
Аватар для fxobject
Кандидат Javascript-наук
Отправить личное сообщение для fxobject Посмотреть профиль Найти все сообщения от fxobject
 
Регистрация: 01.03.2021
Сообщений: 138

если можно чуть поподробней?
у вас в ответе очередь это поток или eventLoop? Если я не ошибаюсь eventLoop в потоке - один. т.е. предположу что предложение о создании нескольких потоков. Такое решение не совсем предпочтительно, потому как это приложение имеет канал общения с другим node приложением, от которого получает команды и передает отчеты своих действий.
А значит придется организовывать обмен данными между потоками. Не то, чтобы трудно, как бы подобное делал. Но хотелось бы не заморачиваться с этим. А вообще, конечно такое решение рабочее. Может на нем и остановлюсь. Прикинуть надо....
Ответить с цитированием
  #4 (permalink)  
Старый 19.02.2024, 18:49
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,745

Сообщение от fxobject
т.е. фактически необходим приоритет в eventLoop.
Ну вы же не eventLoop, который в node собираетесь использовать.
Наверняка свою очередь будете делать. Ну сделайте добавление обычных задач в конец очереди, а приоритетных в начало.
Ответить с цитированием
  #5 (permalink)  
Старый 19.02.2024, 20:26
Аватар для fxobject
Кандидат Javascript-наук
Отправить личное сообщение для fxobject Посмотреть профиль Найти все сообщения от fxobject
 
Регистрация: 01.03.2021
Сообщений: 138

увы так не получится. те задачи, которые неспешно идут, я мог класть как хочу. А вот те, которые приходят и требуют быстрой обработки их "кладет" сам Node. т.е. происходит событие (в моем случае trap snmp), это значит что просто поступают данные UDP на порт. и обработка (алгоритмическая) я так понимаю ложится в конец очереди. и вытащится из нее только когда все медленные до этого помещенные будут извлечены. Ну на самом деле все будет быстрей (потому в "медленных" есть и sql и прочие дела, прерывающие работу задания и обращение к неблокируемому вводу/выводу) но тем не менее, посмотрел статистику обращений trap, взялся за голову. только отдельным потоком, да и еще придется очень много чего кэшировать. Всем спасибо за участие.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сервер на Node и вопрос по php voraa Node.JS 4 18.03.2021 14:08
Обмен узлов между двумя деревьями jabbascript Javascript под браузер 8 05.02.2021 18:13
Линейный список в js artem55555p Элементы интерфейса 2 27.05.2018 12:52
Бинарное древо (отрисовка), объекты d1ver Общие вопросы Javascript 8 14.10.2017 02:07
Что выбрать для проекта: Node или Apache/nginx AlexOv Node.JS 8 30.06.2017 19:51