하나의 서버와 여러 클라이언트가 있습니다. 일정 기간 동안 클라이언트는 서버에 활성 패킷을 보냅니다. (이 시점에서 서버는 활성 패킷에 응답하지 않습니다. 기간은 장치와 장치를 변경할 수 있으며 런타임시 서버와 클라이언트 모두에 대해 구성 할 수 있습니다. 하나 이상의 클라이언트가 활성 패킷을 보내지 않을 때 경고를 생성하려고합니다. (1 패킷 또는 2 행 등). 이 aliveness는 응용 프로그램의 다른 부분을 사용하므로 빠른 통지가 더 좋습니다. 나는 몇 가지 아이디어를 생각해 냈지만 선택할 수는 없었습니다. Java에서 여러 클라이언트의 시간 초과
- 는 현재 시간과 모든 클라이언트 최근 작동 패킷의 타임 스탬프를 확인하는 작업을 생성하고 경고 또는 경고를 생성합니다. 이 메소드는, 최소의 클라이언트 기간보다 작은 기간으로 호출합니다.
실제로이 방법은 불필요하게 일부 클라이언트를 확인하는 대신 내게 좋을 것 같습니다. (예 : 클라이언트 기간이 1-5 분으로 바뀌면 적어도 1 분마다 작업을 실행해야하므로 2 분 이상의 모든 클라이언트가 중복되는지 확인해야합니다.) 또한 클라이언트 기간의 최소가 감소하면, 나는 또한 작업 기간을 줄여야합니다.
각 클라이언트에 대한 작업을 만들고 마지막 시간 값으로 현재 살아있는 패킷 시간 소인을 확인하고 한 클라이언트의 기간 동안 절전 모드를 선택하십시오.
이렇게하면 클라이언트 수가 매우 높으면 수십 가지 작업이 있습니다. 그들이 대부분의 시간을 자고 있기 때문에, 나는 이것이 아직도 더 우아하다고 의심합니다.
이러한 상황에는 어떤 관용구 또는 패턴이 있습니까? 나는 watchdog
종류 구현이 잘 스위트라고 생각하지만, 나는 Java
과 같은 것을 보지 못했다.