111 lines
3.5 KiB
PHP
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);
|
|
}
|
|
}
|
|
}
|