Как правилно да рестартирате приложение на Node.js?

Добър ден. Всъщност, предмет, как правилно да рестартирате възел по време на разполагане, ако приложението постоянно обработва нещо? Например връзките са постоянно отворени или от заека те безкрайно отиват да обработят съобщението и дори изчисленията влизат в цената.

Има ли инструменти за безпроблемно внедряване? Всичко, което гуглих досега, се свежда до факта, че трябва да напишете собствено изключване, което ще спре всички манипулатори и ще се рестартира, но това според мен е намаление на времето. Ако например дадено действие отнеме няколко секунди, тогава докато то завърши, приложението всъщност няма да работи, чакайки за рестартиране. Или може би някой ще сподели методите им за разполагане. Благодаря предварително за отговорите.

Вярвам, че безпроблемното внедряване е реално и удобно в присъствието на трета страна, нека го наречем превключвател. Как работи:

1. Switcher стартира n-инстанции и започва да разпределя заявките равномерно между тях: следене на заявките чрез броячи.
2. Изпращате на превключвателя сигнал за рестартиране/внедряване.
3. Switcher започва да събира нови екземпляри, без да убива стари и да им изпраща заявки.
4. Когато броячът на заявките на стария екземпляр е нула, можете да го убиете, което превключвателят прави.

По този начин не е нужно да модифицирате съществуващия код и мащабирането е безболезнено чрез добавяне на нови копия. Моля, обърнете внимание: процесът има събитие „изход“, към което прикачвате манипулатори, за да спрете изчислението. Тези. първо, външният интерфейс се затваря в нормален режим и едва след това вътрешните операции се прекратяват, връзките се затварят, бравите се освобождават и т.н.