我们的网络应用程序中有一个日历。可以将事件添加到日历中,并且事件将具有一些开始日期和结束日期。
活动也可以提醒。因此,在添加事件时,如果用户决定通过提醒电子邮件通知该事件,则用户可以在事件中设置提醒值。与Outlook中的内容类似。
例如,活动名称:每周会议
开始日期:3月1日,上午10点
提醒:1小时(可以是15分钟,30分钟,1小时,2小时,1天,2天等)。
因此,在这种情况下,应在事件发生之前(即1小时前)向用户发送电子邮件。
数据库中的事件表包含事件名称,开始日期,提醒。
如何在Java中实现此功能?
答案 0 :(得分:1)
您可能希望运行预定作业来检查事件和提醒,并在必要时发送电子邮件。
如果你正在使用像JBoss这样的应用服务器,你可以使用Quartz scheduler(JBoss通常包含一个版本的quartz)。然后将作业设置为以最低提醒粒度运行,例如每15分钟一次。
答案 1 :(得分:1)
如果您不想使用外部调度程序,可以使用Java Timer。您需要实现TimerTask接口并使用Timer安排它,无论您需要什么频率。 TimerTask应该只是查询数据库以获取所有即将发生的事件并发送电子邮件。
要获取所有即将发生的事件,请为数据库使用正确的SQL语法 -
WHERE(START_DATE - TODAY)< REMINDER_ADVANCE
要发送电子邮件,请使用Java mail API。
答案 2 :(得分:1)
现代方式:您可以将您的Web应用程序与一些云提醒服务集成 - Google日历,RTM,ToodleDo等.Google日历具有日历服务的Java API,其他人也有有用的API。