Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) Safe-mode: OFF (not secure) /var/www/html/kiosk/ drwxr-xr-x | |
| Viewing file: Select action/file-type: const mysql = require('mysql2/promise');
const cron = require('node-cron');
const bcrypt = require('bcryptjs');
// MYSQL-A Connection
const mysqlAConfig = {
host: '127.0.0.1',
user: 'admin',
password: 'wahid',
database: 'queuepro',
timezone: 'Z'
};
// MYSQL-B Connection
const mysqlBConfig = {
host: '127.0.0.1',
user: 'admin',
password: 'wahid',
database: 'kiosk',
timezone: 'Z'
};
async function fetchAndTransferUsers() {
let connA, connB;
try {
// Connect to both databases
connA = await mysql.createConnection(mysqlAConfig);
connB = await mysql.createConnection(mysqlBConfig);
const [agent] = await connB.execute('SELECT user_id FROM agents order by user_id limit 1');
var user_id= (agent.length==0) ? 0 : agent[0].user_id;
// Fetch unprocessed users from MYSQL-A
const [users] = await connA.execute(`SELECT * FROM user_info where user_id> ${user_id}`);
if (users.length === 0) {
return;
}
const hashedPassword = await bcrypt.hash("123456", 10);
for (const user of users) {
const { USER_ID, USER_LOGIN_ID, USER_NAME } = user;
// Insert into MYSQL-B
await connB.execute('INSERT INTO agents (user_id, name, user_name,password) VALUES (?, ?, ?, ? )', [USER_ID, USER_NAME,USER_LOGIN_ID,hashedPassword]);
// Mark user as processed in MYSQL-A
// await connA.execute('UPDATE user SET processed = 1 WHERE id = ?', [id]);
}
} catch (error) {
console.error('Error:', error);
} finally {
// Close connections
if (connA) await connA.end();
if (connB) await connB.end();
}
}
async function fetchAndTransferService() {
let connA, connB;
try {
// Connect to both databases
connA = await mysql.createConnection(mysqlAConfig);
connB = await mysql.createConnection(mysqlBConfig);
const [data] = await connB.execute(' SELECT MAX(SDET) AS max_datetime FROM transaction_details');
const maxDatetime = data[0].max_datetime; // Use directly as a string
if (maxDatetime) {
var last_time=new Date(data[0].max_datetime).toISOString().slice(0, 19).replace('T', ' ');
}else{
var last_time='2024-12-10 11:46:44';
}
// // Fetch unprocessed users from MYSQL-A
const [services] = await connA.execute("SELECT TRANS_ID, SDC_ID, SDST, SDET, SERVICE_ID, USER_ID FROM transaction_details where SDET> ?", [last_time]);
console.log(services.length);
if (services.length === 0) {
return;
}
// Prepare bulk insert query for MYSQL-B
const placeholders = services.map(() => "(?, ?, ?, ?, ?, ?)").join(", ");
const values = services.flatMap(({ TRANS_ID, SDC_ID, SDST, SDET, SERVICE_ID, USER_ID }) =>
[TRANS_ID, SDC_ID, SDST, SDET, SERVICE_ID, USER_ID]
);
const insertQuery = `
INSERT INTO transaction_details (TRANS_ID, SDC_ID, SDST, SDET, SERVICE_ID, USER_ID)
VALUES ${placeholders}
`;
// Insert into MYSQL-B
await connB.query(insertQuery, values);
// console.log(services.length);
// for (const service of services) {
// const { TRANS_ID, SDC_ID, SDST, SDET, SERVICE_ID, USER_ID } = service;
// // Insert into MYSQL-B
// await connB.execute('INSERT INTO transaction_details (TRANS_ID, SDC_ID, SDST, SDET, SERVICE_ID, USER_ID) VALUES (?, ?, ?, ?, ?, ? )', [TRANS_ID, SDC_ID, SDST, SDET, SERVICE_ID, USER_ID]);
// }
} catch (error) {
console.error('Error:', error);
} finally {
// Close connections
if (connA) await connA.end();
if (connB) await connB.end();
}
}
// Run the cron job every 10 seconds
cron.schedule('* */10 * * * *', () => {
console.log('Running the cron job...');
fetchAndTransferUsers();
});
cron.schedule('*/5 * * * * *', () => {
console.log('Running the cron job...');
fetchAndTransferService();
});
console.log('Service is running...');
|
:: Command execute :: | |
--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0052 ]-- |