2011-03-10 10 views
2

우리 웹 응용 프로그램에 달력이 있습니다. 일정을 일정에 추가 할 수 있으며 일정에는 시작 날짜와 종료 날짜가 있습니다.자바에서 자신의 캘린더 알림을 만드는 방법은 무엇입니까?

이벤트에 미리 알림을 설정할 수도 있습니다. 따라서 이벤트를 추가하는 동안 사용자가 미리 알림 전자 메일로 이벤트를 알리겠다고 결정하면 사용자는 이벤트에서 미리 알림 값을 설정할 수 있습니다. 우리가 가지고있는 것과 비슷합니다. Outlook. 예를 들어

, 이벤트 이름 : 주간 회의

시작 날짜 : 1 년 3 월 오전 10시

알림 : 1 시간 (그것은 15 분 할 수있다, 30 분, 1 시간, 2 시간, 1 일, 2 일 등).

그래서이 경우 이벤트 1 시간 전에 이메일을 사용자에게 보내야합니다.

데이터베이스의 이벤트 테이블에 이벤트 이름, 시작 날짜, 미리 알림이 있습니다.

어떻게 이것을 Java로 구현합니까?

+0

몇 가지 코드를 제안합니다. – peterh

답변

1

외부 스케줄러를 사용하지 않으려면 Java Timer을 사용할 수 있습니다. TimerTask 인터페이스를 구현하고 필요한 빈도에 상관없이 TimerTask 인터페이스를 예약해야합니다. TimerTask는 데이터베이스를 쿼리하여 향후 예정된 모든 이벤트를 가져오고 전자 메일을 보내야합니다.

모든 다가오는 이벤트를 가져 데이터베이스에 대한 적절한 SQL 구문을 사용하여 -

WHERE (START_DATE - 오늘) < REMINDER_ADVANCE

Java mail API를 사용하여 이메일을 보낼 수 있습니다.

+0

알림 전자 메일을 예약하기 위해 석영 및 스프링 통합을 사용합니다. 진짜 문제는 다가오는 이벤트를 정확하게 얻는 것입니다. 이벤트를 알리는 적절한 쿼리는 무엇입니까? – ashishjmeshram

+0

@rahulmohan reminder_advances 각각에 대해 별도의 쿼리를 실행해야합니까? 즉, 다음 15 분 이내에 이벤트가 있는지, 30 분 동안 다른 쿼리가 1 일, 2 일 등 다른지 확인하는 쿼리? – ashishjmeshram

+0

@Ashish : 아니요, "START_DATE - SYSDATE rahulmohan

0

이벤트 및 미리 알림을 확인하고 필요한 경우 전자 메일을 보내는 예약 된 작업을 실행할 수 있습니다.

JBoss와 같은 응용 프로그램 서버를 사용하는 경우 Quartz scheduler을 사용할 수 있습니다 (JBoss는 일반적으로 이미 쿼츠 버전을 포함하고 있습니다). 그런 다음 가장 낮은 미리 알림 세분성 (예 : 15 분마다.

1

현대적인 방법 : 웹 캘린더, RTM, ToodleDo 등 일부 클라우드 알림 서비스와 웹 애플리케이션을 통합 할 수 있습니다. Google 캘린더에는 캘린더 서비스에 대한 Java API가 있으며 다른 API에는 유용한 API가 있습니다.

+0

지금 완전히 다른 것을 사용하는 것은 불가능합니다. 따라서 우리는 가지고있는 것을 계속 수행하고 그것을 구현하려고 노력해야 할 것입니다. : – ashishjmeshram

+0

전적으로 다르지 않습니다. API를 통해 Google 등의 사이트를 통합 할 수 있으므로 사용자는 사이트를 계속 사용하지만 사이트는 Google을 백엔드 미리 알림 엔진으로 사용합니다. –

관련 문제