使用Quartz Scheduler在Java Web应用程序中发送电子邮件通知和提醒

shi*_*iny 3 email notifications reminders quartz-scheduler

我想开发一个简单的Java Web应用程序,在一些任务完成后发送电子邮件通知,例如提交审批的请求,以及定期提醒(称批准者).我想使用Quartz Scheduler来做到这一点.我是新手,所以任何人都可以帮我开始这个.

提前致谢.

我复制并粘贴了JAR文件:quartz-1.8.0在WEB-INF\lib中,甚至在common\lib中,然后在我的Java文件中导入时找不到它.:(

Nis*_*ant 7

创建一个从web-app init开始的servlet.

<web-app>
    ...
    <servlet>
     <servlet-name>Emailer</servlet-name>
     <servlet-class>my.servlet.Emailer</servlet-class>
     <load-on-startup>1</load-on-startup>
    </servlet>
    ...
</web-app>
Run Code Online (Sandbox Code Playgroud)

init()servlet中配置你的调度程序(以下示例每10分钟触发一次)

SchedulerFactory schFact = new org.quartz.impl.StdSchedulerFactory();
Scheduler sched = schFact.getScheduler();
JobDetail job = new JobDetail("job1", "group1", EmailerJob.class);
CronTrigger trigger = new CronTrigger("trigger1", "group1", "job1", "group1", "* 0/10 * * * ?");
sched.addJob(job, true);
sched.start();
Run Code Online (Sandbox Code Playgroud)

编写一个类的实现Quartz的Job接口.

EmailerJob implement Job{
        public void execute(JobExecutionContext arg0) throws JobExecutionException {
        //Code to send mails goes here
    }

}
Run Code Online (Sandbox Code Playgroud)

PS上面的代码未经过测试,但它可以让您了解如何做.

正如@ jmort253正确指出的那样,Quartz教程是最好的资源,如果我没记错的话,他们会在某个地方完成预定的电子邮件示例.


更新

好吧,谷歌解决你的问题.这是您最详细的解决方案,任何人都可以给你!Java - 使用quartz API的Web应用程序中的作业调度

编辑#1您可以使用ContextListener而不是servlet来启动Quartz调度程序.


更新1

正如@jhouse正确地提到的那样Job,您可以要求Quartz预定义SendMailJob类执行相同操作,而不是编写自己的处理邮件.谢谢@jhouse.