Files
manjapro_v6/load/load_multi_cek.php
T
2026-08-20 18:39:37 +07:00

60 lines
1.7 KiB
PHP

<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
include "/www/wwwroot/bilspro/config/connect.php";
$max_process = 5; // BATASI BIAR AMAN
$running = 0;
try {
$query = "SELECT nama, ip_address, username, password, port_api, id_setting_mikrotik
FROM v_load_api_cek_voucher";
$set1 = $pdo->query($query);
if ($set1 && $set1->rowCount() > 0) {
while ($pset = $set1->fetch(PDO::FETCH_ASSOC)) {
// Batasi jumlah proses
while ($running >= $max_process) {
sleep(1);
$running--;
}
$m_ip = escapeshellarg($pset['ip_address']);
$m_user = escapeshellarg($pset['username']);
$m_pass = escapeshellarg($pset['password']);
$m_port = escapeshellarg($pset['port_api']);
$idsm = escapeshellarg($pset['id_setting_mikrotik']);
$nama = escapeshellarg($pset['nama']);
// LOG PER WORKER
$command = "php /www/wwwroot/bilspro/load/check_voucher.php
{$m_ip} {$m_user} {$m_pass} {$m_port} {$idsm} {$nama}
>> /www/wwwroot/bilspro/load/log_worker.log 2>&1 &";
exec($command);
echo "Start: {$pset['ip_address']} - {$pset['nama']}\n";
$running++;
usleep(200000); // delay biar gak brutal
}
echo "Semua process dimulai => " . date('Y-m-d H:i:s') . "\n";
} else {
$stmt = $pdo->prepare("UPDATE ganerate_voucher SET status_cek = NULL WHERE status_cek = '1'");
$stmt->execute();
echo "Reset status_cek selesai\n";
}
} catch (PDOException $e) {
echo "Database Error: " . $e->getMessage() . "\n";
}