Почему PM2 не получает активные классы?

Как мне организовать постоянную работу одного класса (вроде сервера) и работы другого класса, который будет взаимодействовать с первым классом без получения блокировки на авторизацию на сайте? Я исследовал эту тему и нашел, что можно использовать pm2 для реализации такой задачи.
  • 5 ноября 2023 г. 14:49
Ответы на вопрос 1
PM2 - это процесс-менеджер для Node.js, который позволяет запускать и масштабировать приложения на Node.js. В отличие от традиционных серверов, PM2 не имеет прямого доступа к активным классам или объектам в вашем приложении.

Чтобы организовать постоянную работу одного класса (например, сервера) и работы другого класса, который взаимодействует с первым классом без блокировки на авторизацию на сайте, вы должны разделить свои классы на отдельные модули и развернуть их в PM2 как два отдельных процесса.

Процесс сервера будет работать непрерывно и слушать входящие соединения, а процесс взаимодействия будет делать запросы к серверу без блокировки на авторизацию на сайте.

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

Вот пример кода, который демонстрирует эту концепцию:

**server.js:**

```javascript
const http = require('http');

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello, world!');
});

server.listen(3000, 'localhost', () => {
  console.log('Server running at http://localhost:3000/');
});
```

**interaction.js:**

```javascript
const http = require('http');

setInterval(() => {
  http.get('http://localhost:3000/', (res) => {
    console.log('Got response:', res.statusCode);
  });
}, 5000);
```

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

Например:

```shell
pm2 start server.js
pm2 start interaction.js
```

Теперь вы будете иметь постоянно работающий сервер, слушающий входящие соединения, и второй процесс, который выполняет запросы к серверу раз в 5 секунд.

Это простой пример, но вы можете адаптировать его под свои конкретные потребности.
Похожие вопросы