эквивалент isMaster для pm2

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

Есть ли способ определить или идентифицировать изначально запущенный экземпляр, эквивалентный isMaster при использовании pm2?


person gotmikhail    schedule 13.04.2015    source источник
comment
читая их документы, кажется, что лучший способ - справиться с этим самостоятельно. сценарий может искать файл master.pid и, если он не существует, взять на себя роль мастера и создать файл.   -  person Plato    schedule 13.04.2015
comment
есть ли место в их документах, которое специально представляет это? Не вопрос, просто интересно почитать.   -  person gotmikhail    schedule 13.04.2015
comment
Ничего явного... В основном я следую их рекомендации "без сохранения состояния" в cluster и приложения без сохранения состояния раздел. Я также искал их проблемы для тех, кто спрашивает то же самое, но я нигде не вижу ссылок на режим «мастер».   -  person Plato    schedule 13.04.2015


Ответы (1)


Для тех, кто ищет, я нашел это решение.

if (process.env && process.env.pm_id) {
    //running in pm2 
    if (process.env.pm_id % os.cpus().length !== 0) {
        return;
    }else{
        collectSysInfo();
   }
}

https://github.com/Unitech/pm2/issues/2035#issuecomment-199815595

person VaL    schedule 28.12.2016