60 lines
1.7 KiB
PHP
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";
|
|
} |