forked from UKSOURCE/cms.hailearning.edu.vn
77 lines
2.3 KiB
JavaScript
77 lines
2.3 KiB
JavaScript
const mongoose = require('mongoose');
|
||
const { exec } = require('child_process');
|
||
const axios = require('axios');
|
||
|
||
const MONGODB_URI = 'mongodb://10.0.0.3:27017/cms_simsswiss?replicaSet=rs0';
|
||
const TELEGRAM_TOKEN = '7780629683:AAFrbQtKtEZq-A-WZVUQgeWJXm9ilF9fNa8';
|
||
const TELEGRAM_CHAT_ID = '-4625467548';
|
||
|
||
const actionSchema = new mongoose.Schema({
|
||
updated: Number
|
||
});
|
||
//const Action = mongoose.model('Action', actionSchema);
|
||
const Action = mongoose.model('Action', actionSchema, 'actions');
|
||
|
||
|
||
async function sendTelegramMessage(message) {
|
||
try {
|
||
await axios.post(`https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendMessage`, {
|
||
chat_id: TELEGRAM_CHAT_ID,
|
||
text: message
|
||
});
|
||
} catch (err) {
|
||
console.error('❌ Lỗi gửi Telegram:', err.message);
|
||
}
|
||
}
|
||
|
||
async function runTask() {
|
||
try {
|
||
await mongoose.connect(MONGODB_URI);
|
||
const action = await Action.findOne();
|
||
|
||
if (action && action.updated === 1) {
|
||
console.log('🚀 Phát hiện updated=1 → thực thi run.sh');
|
||
|
||
exec(
|
||
'cd /secure_site_simss_admin/www/html/sis-app-backend.simsswiss.ch/public/simsswiss.ch && bash run.sh',
|
||
async (err, stdout, stderr) => {
|
||
if (err) {
|
||
console.error('❌ Lỗi chạy run.sh:', err.message);
|
||
await sendTelegramMessage(`❌ Lỗi chạy run.sh: ${err.message}`);
|
||
await mongoose.disconnect();
|
||
process.exit(1);
|
||
}
|
||
|
||
console.log(stdout);
|
||
console.error(stderr);
|
||
|
||
try {
|
||
const res = await Action.updateOne(
|
||
{ _id: action._id },
|
||
{ $set: { updated: 0 } }
|
||
);
|
||
console.log(`✅ Update result:`, res);
|
||
await sendTelegramMessage('✅ Chạy run.sh thành công và đã reset updated=0');
|
||
} catch (updateErr) {
|
||
console.error('❌ Lỗi update:', updateErr.message);
|
||
await sendTelegramMessage(`❌ Lỗi update: ${updateErr.message}`);
|
||
}
|
||
|
||
await mongoose.disconnect();
|
||
process.exit(0);
|
||
}
|
||
);
|
||
} else {
|
||
console.log('ℹ️ Không có updated=1 → bỏ qua');
|
||
await mongoose.disconnect();
|
||
process.exit(0);
|
||
}
|
||
} catch (err) {
|
||
console.error('❌ Lỗi:', err.message);
|
||
await mongoose.disconnect();
|
||
process.exit(1);
|
||
}
|
||
}
|
||
|
||
runTask();
|