package com.huangzj.comm.crosslink;

import lombok.RequiredArgsConstructor;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

/** 区服侧跨服长连接心跳（间隔见 {@code cross.heartbeat-interval-ms}）。 */
@Component
@RequiredArgsConstructor
public class CrossTcpHeartbeatTask {

    private final CrossTcpClient crossTcpClient;

    /**
     * fixedDelay：上一次执行结束后再隔 interval 执行，避免心跳堆积把 IO 线程打满。 与业务 roundTrip
     * 并发时靠 link_seq 区分，无需额外串行化。
     */
    @Scheduled(fixedDelayString = "${cross.heartbeat-interval-ms:15000}")
    public void heartbeat() {
        crossTcpClient.sendHeartbeat();
    }
}
