<?php
// ============================================================
// heartbeat : bybit_total_heartbeat.php
// 데몬 생존 기록 + kill_flag 체크
// 타격기에서 include 호출
// ============================================================
if ($pdo) {
// heartbeat 기록
$stmt_hb = $pdo->prepare("
INSERT INTO daemon_record (
d_id, d_category, d_pid, d_status,
d_heartbeat, d_ip, d_start_time, d_memo, d_kill_flag
)
VALUES (
:id, 'BYBIT_TOTAL', :pid, 'RUNNING',
NOW(), 'CLI_DAEMON', NOW(), 'BYBIT TOTAL LINEAR FUTURES', 0
)
ON DUPLICATE KEY UPDATE
d_pid = VALUES(d_pid),
d_status = 'RUNNING',
d_heartbeat = NOW(),
d_memo = VALUES(d_memo)
");
$stmt_hb->execute([':id' => $DAEMON_ID, ':pid' => getmypid()]);
// kill_flag 체크
$stmt_kill = $pdo->prepare("SELECT d_kill_flag FROM daemon_record WHERE d_id = :id LIMIT 1");
$stmt_kill->execute([':id' => $DAEMON_ID]);
$kill_flag = (int)($stmt_kill->fetchColumn() ?: 0);
if ($kill_flag === 1) {
$stmt_stop = $pdo->prepare("
UPDATE daemon_record
SET d_status='STOPPED', d_heartbeat=NOW(), d_pid=0
WHERE d_id=:id
");
$stmt_stop->execute([':id' => $DAEMON_ID]);
exit(0);
}
}