首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在提醒时间到期时自动触发事件。可以使用hibernate来完成吗?

问在提醒时间到期时自动触发事件。可以使用hibernate来完成吗?
EN

Stack Overflow用户
提问于 2013-05-08 18:56:22
回答 1查看 506关注 0票数 1

我使用hibernate在mysql数据库中存储提醒实体。现在,每当提醒时间到期时,我都需要在应用程序中触发一个事件。

我已经研究了hibernate拦截器和事件,我应该如何实现它。基本上是在创建、保存、更新或删除时触发,而我需要监控表中的一个字段,并在提醒时间到期时触发一个事件。

我还阅读了有关配置cron作业的内容,但我需要在应用程序中及时启动事件,因为必须在用户GUI上显示提醒通知。

任何建议都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2013-05-08 21:53:43

看看Quartz (http://quartz-scheduler.org/)吧。它为您提供了一些可能性。一种可能是在存储提醒实体的同时安排提醒作业。或者(也可能是更有效的),您可以安排一个定期运行的作业,并在数据库中查询在下次运行之前到期的提醒实体。则该周期性作业将为每个提醒实体调度一个提醒作业。提交quartz作业的示例代码:

代码语言:javascript
复制
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
scheduler.start();

JobDataMap map = new JobDataMap();
/* put anything necessary here. */

JobDetail job = JobBuilder.newJob()
        .withIdentity("MyReminderJobName")
        .withDescription("Reminder Job")
        .usingJobData(map)
        .ofType(MyReminderJob.class)
        .build();       

SimpleScheduleBuilder once = simpleSchedule().repeatSecondlyForTotalCount(1);
Date reminderDate = new Date(); //reminder event date


Trigger trigger = newTrigger()
        .forJob(job)
        .withSchedule(once)
        .startAt()             
        .build();

scheduler.scheduleJob(job, trigger);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16438852

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档