我想开发一个简单的 Java Web 应用程序,以在完成某些任务后发送电子邮件通知,例如提交批准的请求,并定期提醒(比如说批准者)。我想使用 Quartz Scheduler 来做到这一点。我是新手,所以任何人都可以帮助我开始这个。
提前致谢。
我将 JAR 文件:quartz-1.8.0 复制并粘贴到 WEB-INF\lib 甚至 common\lib 中,然后在我的 Java 文件中导入时找不到它。:(
我想开发一个简单的 Java Web 应用程序,以在完成某些任务后发送电子邮件通知,例如提交批准的请求,并定期提醒(比如说批准者)。我想使用 Quartz Scheduler 来做到这一点。我是新手,所以任何人都可以帮助我开始这个。
提前致谢。
我将 JAR 文件:quartz-1.8.0 复制并粘贴到 WEB-INF\lib 甚至 common\lib 中,然后在我的 Java 文件中导入时找不到它。:(
创建一个从 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>
在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();
编写一个类实现 Quartz 的 Job 接口。
EmailerJob implement Job{
public void execute(JobExecutionContext arg0) throws JobExecutionException {
//Code to send mails goes here
}
}
PS上面的代码未经测试,但它可以让您清楚地知道该怎么做。
正如@jmort253 正确指出的那样,Quartz 教程是最好的资源,如果我没记错的话,他们在其中某处有一个预定的电子邮件示例。
更新
好的,谷歌来解决你的问题。这是您最详细的解决方案,任何人都可以提供给您!Java – 使用石英 API 的 Web 应用程序中的作业调度
编辑#1您可以使用ContextListener
而不是 servlet 来启动 Quartz 调度程序。
更新 1
正如@jhouse 正确提到的那样,您可以要求 Quartz 预定义的类来做同样的事情,而不是编写自己的Job
处理邮件。SendMailJob
谢谢@jhouse。