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 секунд.
Это простой пример, но вы можете адаптировать его под свои конкретные потребности.