Ruby에서 루프 내부에서 카운터가 증가하는 데몬을 만들었습니다. 루프는 비즈니스를 수행 한 다음 1 초 동안 잠자고 계속됩니다. 간체는 다음과 같습니다 :Ruby의 루프에서 주기적으로 카운터를 내보내는 가장 좋은 방법은 무엇입니까
5 분마다 카운터 값을 데이터베이스에 저장하는 메소드를 호출하고 싶습니다. 나는 이것을 할 수있는 몇 가지 방법이 있다고 생각한다. 내가 생각한 최초의 방법은 5 분, 0 초와 일치하는 것을 검사하고, 일치하면 SQL 함수를 호출하는 루프에서 Time.now를 호출하는 것이 었습니다. 그러나 send_command가 약간의 시간이 걸리면 레코드가 누락 될 수 있습니다.
또 다른 가능성은 소켓을 통해 호출 (및 재설정) 할 수있는 카운터 변수를 사용 가능하게하는 것일 수 있습니다. 간단히 Socket 클래스를 살펴 보았습니다.
누락 된 명백한/최선의 방법이 있습니까?
불행히도 매 5 분마다 카운터를 자주 업데이트해야합니다. 0에서 1로 변경되는 디지털 읽기입니다. 변경 사항을 계산해야하며 많은 부분이 5 분 세그먼트에서 발생할 수 있습니다. 나는 약간의 drb를했다, 그것은 단지 필요 이상으로 보였다. – markf
죄송합니다. 답변을 잘못 읽었습니다. 이것은 괜찮은 선택입니다. 그리고 제가 고려할 것입니다. – markf
이것은 내가 끝내주는 것입니다. 카운터에서 전역으로 이동하여 두 개의 스레드 (하나는 데이터를 수집하고 다른 하나는 데이터베이스)를 생성했습니다. 도와 주셔서 감사합니다. – markf