Узел JS на Pi Zero нескольких процессов - PullRequest
0 голосов
/ 13 мая 2019

Я использую Node на Rasbian Stretch Lite с пи-ноль.

В основном я хочу, чтобы два процесса работали, один из которых должен сохранять соединение с сервером открытым для отправки и получения сообщений, таких как статус офлайн, а другой - сканировать iBeacons.

БудетБудет ли наилучшей практикой создать один проект и иметь два JS-файла и запускать их отдельно, используя что-то вроде PM2?Или лучше иметь два совершенно разных проекта?Один процесс зависит от другого, так как я буду обновлять маяки для сканирования через открытое соединение.

Ответы [ 2 ]

1 голос
/ 13 мая 2019

Если вы запускаете приложения как два отдельных процесса, PM2 позволяет вам контролировать запуск обоих одновременно с помощью объекта конфигурации JavaScript, JSON или YAML .

Например, запускать сценарии worker.js и api.js отдельно:

module.exports = {
  apps : [{
    name        : "worker",
    script      : "./worker.js",
    watch       : true
  }, {
    name       : "api-app",
    script     : "./api.js",
    instances  : 4,
    exec_mode  : "cluster"
  }]
}

В этом смысле вы можете сохранить их как один проект, а затем запустить их вместе, используя один файл конфигурации с PM2.

Если сложность ваших приложений доходит до того, что было бы лучше разделить их, вы можете сделать это позже.

0 голосов
/ 04 июня 2019

Поскольку вы, вероятно, получите обратные вызовы для обнаруженных маяков, и частота не будет высокой, я бы реализовал это как один процесс. Хитрость с маяками заключается в том, чтобы обрабатывать входящие / выходящие области, чтобы избежать «заикания», поэтому оптимально, если для каждого обнаруженного таймера есть один таймер, который отслеживает вход / выход далеко / близко / немедленно, если вам теперь нужна такая детализация.

...