diff --git a/controllers/Mitac_service.php b/controllers/Mitac_service.php index 15693fa..cddbfc4 100644 --- a/controllers/Mitac_service.php +++ b/controllers/Mitac_service.php @@ -104,6 +104,13 @@ class Mitac_service extends CI_Controller echo ''; } + // [排程] 詢問是否存活 + public function echo_mitac_alive() + { + echo $this->mitac_service_model->echo_mitac_alive(); + exit; + } + // 要求扣款 (ALTOB to MITAC) public function parking_fee_altob() { diff --git a/coworker/sync_minutely.php b/coworker/sync_minutely.php index 861fa49..b6fa2a2 100644 --- a/coworker/sync_minutely.php +++ b/coworker/sync_minutely.php @@ -22,10 +22,32 @@ trigger_error('..start..'); try { $ch = curl_init(); - curl_setopt($ch, CURLOPT_URL, "http://localhost/carpark.html/sync_minutely"); + curl_setopt($ch, CURLOPT_URL, "http://localhost/carpark.html/sync_minutely"); // TASK: sync curl_setopt($ch, CURLOPT_HEADER, FALSE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); + curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); + curl_setopt($ch, CURLOPT_TIMEOUT, 10); + curl_setopt($ch, CURLOPT_POST, FALSE); + $output = curl_exec($ch); + curl_close($ch); +} +catch(Exception $e) +{ + trigger_error('ERROR: ' . $e->getMessage()); +} + +sleep(1); + +try +{ + $ch = curl_init(); + curl_setopt($ch, CURLOPT_URL, "http://localhost/mitac_service.html/echo_mitac_alive"); // TASK: MITAC alive check + curl_setopt($ch, CURLOPT_HEADER, FALSE); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); + curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3); + curl_setopt($ch, CURLOPT_TIMEOUT, 3); curl_setopt($ch, CURLOPT_POST, FALSE); $output = curl_exec($ch); curl_close($ch); diff --git a/models/Mitac_service_model.php b/models/Mitac_service_model.php index 77cb9d9..aec7763 100644 --- a/models/Mitac_service_model.php +++ b/models/Mitac_service_model.php @@ -24,33 +24,31 @@ class Mitac_service_model extends CI_Model } // mitac socket - function mitac_socket($in) + function mitac_socket($in, $function_name = __FUNCTION__) { - trigger_error(__FUNCTION__ . "..socket input|{$in}"); - return 'ok'; - - + trigger_error($function_name . "..socket input|{$in}"); + return 'none'; // 尚未開放 $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); if ($socket === false) { - trigger_error(__FUNCTION__ . "..socket_create() failed: reason: " . socket_strerror(socket_last_error())); + trigger_error($function_name . "..socket_create() failed: reason: " . socket_strerror(socket_last_error())); } $result = socket_connect($socket, MITAC_SERVICE_IP, MITAC_SERVICE_PORT); if ($result === false) { - trigger_error(__FUNCTION__ . "..socket_connect() failed.\nReason: ({$result}) " . socket_strerror(socket_last_error($socket))); + trigger_error($function_name . "..socket_connect() failed.\nReason: ({$result}) " . socket_strerror(socket_last_error($socket))); return false; // 中斷 } if(!socket_write($socket, $in, strlen($in))) { - trigger_error(__FUNCTION__ . '..Write failed..'); + trigger_error($function_name . '..Write failed..'); } $out = socket_read($socket, 64); socket_shutdown($socket); socket_close($socket); - trigger_error(__FUNCTION__ . "..socket output|{$out}"); + trigger_error($function_name . "..socket output|{$out}"); return $out; } @@ -60,11 +58,19 @@ class Mitac_service_model extends CI_Model $this->vars = $vars; } + // 詢問是否存活 + public function echo_mitac_alive() + { + $msg = iconv("UTF-8", "ISO-8859-1", implode(',', ['Mitac', 'Are you alive'])); + $result = $this->mitac_socket($msg, __FUNCTION__); + return $result == 'Mitac,Alive' ? 'ok' : 'gg'; + } + // 要求扣款 (ALTOB to MITAC) public function parking_fee_altob($parms) { // 轉換成對方要的格式 - $seqno = date('Ymd') . '_' . str_pad($parms['seqno'], 6, '0', STR_PAD_LEFT); + $seqno = date('Ymd') . '_' . str_pad($parms['seqno'], 10, '0', STR_PAD_LEFT); $lpr = $parms['lpr']; $in_time = date('Ymd_His', strtotime($parms['in_time'])); $out_time = date('Ymd_His', strtotime($parms['out_time'])); @@ -72,9 +78,7 @@ class Mitac_service_model extends CI_Model // 產生通訊內容 $msg = iconv("UTF-8", "ISO-8859-1", implode(',', ['Mitac', 'ParkingFee_Altob', $seqno, $lpr, $in_time, $out_time, $gate_id])); - $result = $this->mitac_socket($msg); - - trigger_error(__FUNCTION__ . "..{$msg}..|{$result}"); + $result = $this->mitac_socket($msg, __FUNCTION__); return 'ok'; }