heart beat의 구현방법...
글쓴이: cjy1126 / 작성시간: 화, 2005/02/15 - 7:49오후
5분마다 agent의 실행 유무를 알아야하는데, heart beat를 사용해야 한다는 생각까지는 했습니다.
문제는 구현을 어떻게 해야할지 모르겠습니다.
네트워크 프로그램이 아닌쪽으로 취업을해서(델파이) 유닉스와 네트워크 책을 모두 서울에 놔두고 내려와서 참고할것도 없습니다.
대략, 생각한 방법은 하나의 쓰레드를 생성해서 그 쓰레드에서 sleep(300) 후 heart beat를 보내고...
또 sleep(300) 후 heart beat를 생각합니다.
그런데, 아무리 생각해도 이건 아닌것 같습니다.
5분마다라는게 문제인데... 이걸 구현 못하겠습니다.
고수님들의 도움 부탁드립니다.
Forums:
음.
그리 어려울게 있나요?
gettimeofday 나 ftime 등 타임머 함수를 이용해서
5분마다 소켓으로 에이전트한테 하트비트 패킷을 쏘
고 응답을 받으면 될듯 하네요. 굳이 슬립을 걸 필요 없
이 말이죠.
heartbeat-1.2.3-tar.gz ??http://www.li
heartbeat-1.2.3-tar.gz ??
http://www.linux-ha.org/download/
감사합니다.
gettimeofday나 ftime으로 윈도우의 SetTimer처럼 타이머처럼 5분마다 이벤트나 시그널이 발생하게 할수있나요?
위 2개 함수는 현재 시간을 구하는걸로 아는데 죄송하지만 5분마다 특정작업 a를 하는 예제라도 없을까요?
제가 감을 못잡아서 재차 질문하게 되네요.
Re: heart beat의 구현방법...
괜찮은 방법 같습니다.
그나저나 백수 언제 탈출하냐... ㅡㅡ; 배고파라.
에이전트가 delphi라면 timer VCL에서 5*60*1000으로 값
에이전트가 delphi라면 timer VCL에서 5*60*1000으로 값을 넣고 이벤트 핸들러 달면 문제 없어보이는데요? 통신? 인디쓰고 아님 ics를 쓰거나해서 말입니다.
유닉스/리눅스인 경우 sleep(5*60)하고, 연결해서 하트비트 보내면될것이고,
서버사이드는 메시지가 도착한 시간을 저장하고 있다가 도착한 시간과 비교하면 될듯하고...
그렇군요.
서버에서 agent로 출석을 부르듯 존재 유무를 알려고 했습니다.
agent에서 서버로 나 있어요하고 알리는것도 되는군요.
왜 반대를 생각 못했는지 ㅡㅡ;
아직 델파이를 배우지 못해서 agent는 vc++을 사용합니다.
첫 취업한지 얼마 안되서요 ^^;
그럼 agent는 5분마다 heartbeat를 서버에 보내고,
서버는 5분마다 heartbeat가 없는 ip는 db에 종료로 저장하고, agent 리스트에서 삭제하면 되겠네요.
조언 감사드립니다. 좋은 하루되세요 ^^
ㅎㅎㅎ
서버는 5분마다 heartbeat가 없는 ip는 db에 종료로 저장하고, agent 리스트에서 삭제하면 되겠네요.
바보네요.
이것도 어차피 5분 마다인데...
다른거 대강 마치고 이거 다시할려니까 여기서 또 걸리네요.
스레드 + sleep으로 결정했습니다.
Re: ㅎㅎㅎ
근데 궁금한건 agent 가 단순히 heartbeat 만 보내는일만
하는건가요? 다른일도 하면서 특정시간이 되면 heartbeat
를 서버에 응답하고 해야할텐데 슬립하는 동안에는 다른일을
하지 못하지 않습니까? 스레드를 쓴다면 모르겠지만...
넵... 맞습니다.
사원관리 프로그램입니다.
에이전트가 시작하면 출근 패킷을 보내고.
에이전트가 종료하면 퇴근 패킷을 보냅니다.
에이전트는 실행되면서 사원 컴퓨터에 유해프로세스(게임, 메신저) 같은걸 감시합니다.
에이전트에는 사원들간의 채팅기능(업무상)이 필요합니다.
사원들이 출근하고 에이전트를 비정상인 방법으로 죽인다면 퇴근 패킷이 서버로 날라가지 않습니다.
즉... 비정상적인 방법으로 에이전트를 죽였는지, 혹은 다운되서 죽었는지 알기위해서 heartbeat가 필요합니다.
구체적으로 내용을 안썼던건... 전에 질문올릴때 사원관리 프로그램이라니까 부정적인 분들이 계셔서 그랬습니다.
setitimer()를 써보면 어떨까요...[code:1]man
setitimer()를 써보면 어떨까요...
시그널이 있었군요.
리눅스 대강보고 2년간 윈도우 프로그래밍만 했더니 다 까먹었네요. ㅜ.ㅜ
기억도 안났다니... 슬픕니다.
기억나게 해주셔서 정말 감사합니다.
이번에는 좀 깊게해서 시그널 정복을... -_-;
댓글 달기