2016-10-09 1 views
0

관리자가 폴링을 만들고 마감일을 설정할 수있는 node.js가 아닌 실시간 폴링 작성 및 투표 시스템을 구현하고 있으며이 날짜가되면 시스템이 폴링을 닫고 가입 한 사용자에게 전자 메일을 보냅니다. 사용자는 더 이상 투표 할 수 없습니다. 다른 모든 기능을 구현했지만 해당 날짜에 설문 조사를 마감하는 데 어려움을 겪고 있습니다. 나는 확고한 cron과 같은 스케줄러에 대해서 생각해 보았는데, 나는 확정 된 날짜에 설문 조사를 마감하는 일을 맡았지만 이것이 최선의 접근법인지는 모른다. 이 문제를 해결하는 방법에 대한 아이디어가 있습니까? 감사합니다투표 시스템 종료 날짜 기능을 구현하는 방법은 무엇입니까?

+0

NodeJS 프로그램이 항상 서버에서 실행되고 있습니까? – AppleCrazy

+0

나는 진정으로 그 질문을 이해할 수있을 지 확신하지 못하지만, 나는 그렇다고 말할 것이다. –

+0

데이터베이스를 사용 중이거나 메모리에 저장된 모든 것이 있습니까? – AppleCrazy

답변

0

두 가지 기본 접근 방식이 있습니다 - 프로세스 및 out-of-process 있습니다. 진행중인 프로세스가 더 간단하지만 메인 프로그램이 실행 중이어야합니다. 프로세스 외 (out-of-process)는보다 강력합니다. 주 기능이 계획된 작업 (예 : cron)을 안정적으로 실행하는 시스템을 사용할 수 있기 때문입니다.

Javascript의 in-process 방식에 대해서는 시작시에 투표를 표시하는 폴 레코드를 읽은 다음 (부울 플래그, 날짜 아님) 폴링을 열고 닫는 날짜의 현재 날짜를 빼고 사용하십시오. setTimeout을 사용하여 먼 미래의 함수 호출을 예약하십시오 (또는 차이가 음수 인 경우 즉시). 그 기능은 당신이 필요로하는 무엇이든 할 수 있습니다 (전자 메일, 업데이트 레코드 보내기 등). 마지막으로해야 할 일은 원래 레코드를 업데이트하여 "성공적으로 닫았 음"을 나타내는 것입니다. 이 기능을 re-entrant으로 설정하여 프로세스가 중간에 종료 된 경우 다음에 시작할 때 이전에 닫는 날짜가 있지만 "성공적으로 닫힘"플래그가없는 설문 조사의 레코드를 계속보고 다시 시도하십시오.

+0

답변 해 주셔서 감사합니다. Javascript에서 재진입 기능을 만드는 방법에 대한 독서에 대한 제안 사항은 무엇입니까? –

+0

@EdsonBueno는 일반적으로 그것에 대해 읽었습니다. 특정 언어에 특별한 것이 없습니다. –

관련 문제