Files
2026-04-15 15:23:57 +07:00

111 lines
3.5 KiB
PHP

<?php
class Processtat extends MY_Controller
{
function __construct()
{
parent::__construct();
}
function post($url, $data)
{
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 100);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt(
$ch,
CURLOPT_HTTPHEADER,
array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data)
)
);
$result = curl_exec($ch);
if (curl_errno($ch)) {
return json_encode(array(
"status" => "ERR",
"message" => curl_error($ch)
));
}
curl_close($ch);
return $result;
}
function run_etl($date)
{
$ipAddress = "192.168.250.201";
$urls = [
"http://$ipAddress/one-api/etl/tat/proses_etl/000/$date/0",
"http://$ipAddress/one-api/etl/tat/proses_etl/001/$date/0",
"http://$ipAddress/one-api/etl/tat/proses_etl/002/$date/0",
"http://$ipAddress/one-api/etl/tat/proses_etl/003/$date/0",
"http://$ipAddress/one-api/etl/tat/proses_etl/004/$date/0",
"http://$ipAddress/one-api/etl/tat/proses_etl/005/$date/0",
"http://$ipAddress/one-api/etl/tat/proses_etl/006/$date/0",
"http://$ipAddress/one-api/etl/tat/proses_etl/007/$date/0",
"http://$ipAddress/one-api/etl/tat/proses_etl/008/$date/0",
"http://$ipAddress/one-api/etl/tat/proses_etl/009/$date/0",
];
$multiCurl = [];
$result = [];
$mh = curl_multi_init();
foreach ($urls as $i => $url) {
$multiCurl[$i] = curl_init();
curl_setopt($multiCurl[$i], CURLOPT_URL, $url);
curl_setopt($multiCurl[$i], CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($multiCurl[$i], CURLOPT_RETURNTRANSFER, true);
curl_setopt($multiCurl[$i], CURLOPT_TIMEOUT, 100);
curl_setopt($multiCurl[$i], CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt(
$multiCurl[$i],
CURLOPT_HTTPHEADER,
array(
'Content-Type: application/json'
)
);
curl_multi_add_handle($mh, $multiCurl[$i]);
}
$index = null;
do {
curl_multi_exec($mh, $index);
curl_multi_select($mh);
} while ($index > 0);
foreach ($urls as $i => $url) {
$result[$i] = curl_multi_getcontent($multiCurl[$i]);
curl_multi_remove_handle($mh, $multiCurl[$i]);
curl_close($multiCurl[$i]);
}
curl_multi_close($mh);
return $result;
// $response = $result[$url];
// $data = json_decode($response, true);
// print_r($data);
// if ($data["status"] == "OK") {
// echo json_encode(["status" => "Berhasil"]);
// } else {
// echo json_encode(["status" => "Gagal"]);
// }
}
function etl_process($date)
{
$response = $this->run_etl($date);
foreach ($response as $i => $result) {
print_r($result);
}
}
}