Подход Node.js основан на событиях, и мне было интересно, как бы вы решили проблему запуска события?
Допустим, у нас есть какие-то действия в веб-приложении: создание данных, обслуживание страниц, получение данных и т. д.
Как бы вы изложили эти события? В резьбовой системе конструкция довольно «простая». Вы выделяете потоки для определенного набора задач и идете по пути синхронизации потоков. Пока эти задачи находятся на низком уровне по запросу, потоки простаивают и ничего не делают. Когда они нужны, они запускают свой код. Хотя у этой дороги есть проблемы, они хорошо задокументированы и вроде как решены.
Мне трудно понять, как работает событие node.js. У меня есть 10 запросов, но я не создал никаких данных, поэтому я не могу их обслужить, создание данных - это долгое действие, и еще 5 клиентов хотят отправить данные. Что теперь?
Я создал следующий непроверенный код, который в основном представляет собой кучу обратных вызовов, которые регистрируются и должны выполняться. Будет какой-то менеджер свай, который запустится и решит, какой код он хочет выполнить сейчас. Весь обратный вызов, созданный этим обратным вызовом, может быть добавлен «естественным образом» в четный цикл. Он также должен зарегистрировать себя, чтобы цикл событий мог вернуть ему управление. Другие вещи, такие как статический контент и все, что когда-либо может быть связано по-разному.
- Как я могу зарегистрировать обратный вызов, чтобы он был последним вызовом в текущем состоянии цикла событий?
- Это хороший способ решить эту проблему?