Описание изменений

This commit is contained in:
2025-02-26 11:15:45 +03:00
parent c68b866fa1
commit 13e240f871
3 changed files with 51 additions and 18 deletions

View File

@@ -4,6 +4,8 @@ const axios = require('axios');
const dns = require('dns').promises;
require('dotenv').config();
const { sleep } = require('../utils/helpers');
const util = require('util');
const exec = util.promisify(require('child_process').exec);
class TelegramBotService {
constructor(token) {
@@ -156,14 +158,17 @@ class TelegramBotService {
const addresses = await dns.resolve4('api.telegram.org');
console.log('IP адреса api.telegram.org:', addresses);
// Пинг для проверки доступности
const { exec } = require('child_process');
exec(`ping -c 1 api.telegram.org`, (error, stdout, stderr) => {
// Пинг для проверки доступности (теперь ждем результат)
try {
const { stdout } = await exec('ping -c 1 api.telegram.org');
console.log('Результат ping:', stdout);
});
} catch (pingError) {
console.error('Ошибка при выполнении ping:', pingError);
throw new Error('Сервер Telegram недоступен');
}
} catch (error) {
console.error('Ошибка DNS резолвинга:', error);
throw error; // Прерываем инициализацию если DNS недоступен
console.error('Ошибка сетевой проверки:', error);
throw error;
}
// Затем проверяем API
@@ -342,6 +347,19 @@ class TelegramBotService {
}
}
}
async checkTelegramAvailability() {
const { stdout } = await exec('ping -c 1 api.telegram.org');
const match = stdout.match(/time=(\d+(\.\d+)?)/);
if (match) {
const pingTime = parseFloat(match[1]);
console.log(`Время отклика Telegram API: ${pingTime}ms`);
if (pingTime > 1000) { // Если пинг больше секунды
console.warn('Внимание: высокая задержка при подключении к Telegram API');
}
}
return stdout;
}
}
module.exports = TelegramBotService;