Уведомления и напоминания по электронной почте в веб-приложении Java с использованием Quartz Scheduler - PullRequest
3 голосов
/ 05 февраля 2011

Я хочу разработать простое веб-приложение на Java, которое будет отправлять уведомления по электронной почте после выполнения некоторой задачи, например запроса, отправленного на утверждение, и напоминаний (например, утверждающих) через регулярные промежутки времени.Я хочу сделать это с помощью кварцевого планировщика.Я новичок, поэтому любой может помочь мне начать с этого.

Заранее спасибо.

Я скопировал и вставил файл JAR: кварц-1.8.0 в WEB-INF \ libи даже в общем \ lib, он не найден при импорте в мой файл Java.:(

1 Ответ

7 голосов
/ 05 февраля 2011

Создайте сервлет, который запускается при инициализации веб-приложения.

<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() сервлета настройте свой планировщик (пример ниже срабатывает каждые 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();

Напишите интерфейс задания, дополняющий класс, из кварца.

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

}

PS Приведенный выше код не проверен, но дает вам четкое представление о том, что делать.

Как правильно заметил @ jmort253, учебник по Quartz - это лучший ресурс, и, если я правильно помню, у него есть пример запланированного сообщения электронной почты, сделанный где-то в этом.1021 *

Хорошо, Google решит вашу проблему.И вот ваше самое подробное решение, которое каждый может дать вам! Java - Планирование заданий в веб-приложении с API кварца

Редактировать # 1 Вы можете использовать ContextListener вместо сервлета для запуска планировщика Кварца.


Обновление 1

Как @jhouse справедливо упомянул, что вместо написания вашей собственной Job, которая обрабатывает рассылку, вы можете задать предварительно определенный Quartz SendMailJobкласс, чтобы сделать то же самое.Спасибо @ jhouse.

...