Вопрос : Календарное планирование работы в Java

Hi,

We имеет размещённое в Интернетее применение побежать на Tomcat v6.0.10 Апэйч. Конечно, рапорты также имеющиеся как часть нашего применения.  Теперь, мы планировали ввести новую характеристику в планировать вызванного отчета о применения.  Using рапорт планируя, отчеты о план-графика чонсервной банкы потребителя применения их выбора и получают его после того как они поставлены на их почтовом ящике. Мы хотим дать гибкость потребителя как много по мере того как они могут в планировать reports.

I также услышанное & прочитанное о календарном планировании работы в Java на: Schedulers работы источника

Open в rel= " nofollow " " _blank " " target= " http://java-source.net/open-source/job-schedulers href= Java
n-source/job-schedulers

What http://java-source.net/ope будут rel= " nofollow " " _blank " " target= " http://onjava.com/lpt/a/6207 href= Quartz
rel= " nofollow " " _blank " " target= " http://www.javalobby.org/java/forums/t68751.html href= Scheduler
07

JobServer 1.4 http://onjava.com/lpt/a/62 > случай пользы ava/forums/t68751.html

Considering http://www.javalobby.org/j мой объяснили выше, мои вопросы являются следующими:
1) будет оно по возможности для использования собственного java.util.TimerTask Sun для мой сложный планировать рапорта?
2) будет действительными/сильными причинами/ограничениями java.util.TimerTask сравненного к другим рамкам scheduler работы?  Так, что я себя буду иметь сильное верование/причину перед выбирать третья сторона scheduler работы framework.
3) будут максимум 100-200 потребителей в моем применении.  В случае если, потребители планировали рапорты таким образом в одно время 100 запросов рапорта в косе.  Как рамки scheduler работы ИЛИ java.util.TimerTask регулируют такие сценарии?  Мы имеем управление над этим?
4) в любое время, потребители позволено изменить их план-графики рапорта. Рамки scheduler работы поддерживают это?
5) очевидно, побежать рапорт там будет входные сигналы рапорта, который должен быть к каждому план-графику рапорта.  Мы имеем гибкость/вариант в проходить параметры к рамкам scheduler работы?
5) будет самая лучшая дорога? Интегрируя рамки scheduler работы с веб-приложение или ходом оно как автономный?

NOTE
из-за утечки памяти в нашем применении, мы имеем рестарт ежедневно-основы обслуживания Tomcat на времени низк-использования.  Причина, котор я объясняю это что рапорт запланированный Потребителем должен быть упорствован через сервера/рестарты Tomcat.  Примите это в мнение consideration.

Experts в правильном направлении будьте appreciated.
class=

Ответ : Календарное планирование работы в Java

Наилучшим образом я как раз имел взгляд на одном моих применений использует кварц (обернутый к Весна) и на unschedule уточнения iего работа и после этого планирую измененное одно.

Здесь мое Кодий для sheduling/unscheduling… я также должен передать довольно некоторую информацию к работе, поэтому он относительно подобен к вам нужно (но держите в разуме, который тип mabe одного или другого только имеющийся при использовании завертчицы кварца весны) («данными» будут реальные данные по работы, весн-смысл и работ-executer-обслуживание снабжены ссылками к смыслу весны и обслуживанию, который мне нужно внутри моей работы)
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
	защищено
	пустое scheduleJob (окончательное aJob SchedulerJob)
	{
        // создает смысл работы (Кварц-Предмет).
        окончательное jobDataMap JobDataMap = новое JobDataMap ();
        jobDataMap.put («данные», aJob);
        jobDataMap.put («весн-смысл», ctx);
        jobDataMap.put («работ-executer-обслуживание», jobEcecuterService);

        // создает деталь исполнения работы (Кварц-Предмет).
        окончательное jobDetail JobDetail = новое JobDetail (aJob.getId (),
                null, DefaultSchedulerExecuter.class);
        jobDetail.setJobDataMap (jobDataMap);

        // добавляет jod-определение к scheduler.
        попытка {
            schedulerFactory.addJob (jobDetail, true);

            // создает пуск кварца для того чтобы начать работу.
            окончательный пуск CronTrigger = новое CronTrigger ();
            // установило имя к удостоверению личности
            trigger.setName (aJob.getId ());
            trigger.setJobName (aJob.getId ());
            Старт // теперь.
            trigger.setStartTime (Calendar.getInstance () .getTime ());
            План-график // как замечено в выражением cron.
            trigger.setCronExpression (aJob.getCronExpression ());

            если (log.isInfoEnabled, то ()) {
                log.info (" [SCHEDULER] - работа Scheduling: » +
                        aJob.getId () + «с executer» +
                        jobDetail.getJobClass () .getCanonicalName ());
            }

            План-график // новая работа.
            schedulerFactory.scheduleJob (пуск);
        } задвижка (окончательное исключение e) {
            если (log.isDebugEnabled, то ()) {
                log.info («работа Scheduling ошибки» + aJob.getName () + «. Выключенная работа. », e);
            }

            // выключает работу, поэтому она не начата автоматически снова.
            aJob.setEnabled (ложное);

            // сохраняет доработанную работу.
            попытка {
                updateJob (aJob);
            } задвижка (окончательное исключение ex) {
                ход новое RuntimeException (ex);
            }
        }
	}

	защищено
	пустое unscheduleJob (окончательное aJobId шнура)
	{
    	попытка {
    		если (schedulerFactory.getJobDetail (, то
                    aJobId, «НЕВЫПОЛНЕНИЕ ОБЯЗАТЕЛЬСТВА»)! = null) {
				если (log.isInfoEnabled, то ()) {
					log.info (" [SCHEDULER] - работа Unscheduling: » +
							aJobId);
				}

				schedulerFactory.deleteJob (aJobId, «НЕВЫПОЛНЕНИЕ ОБЯЗАТЕЛЬСТВА»);
    		}
		} задвижка (окончательное SchedulerException e) {
			ход новое RuntimeException (
					«Работа ошибки unscheduling с удостоверением личности» + aJobId, e);
		}
	}
Другие решения  
  •  Как я добавляю кнопки на форме PDF для того чтобы добавить/извлекаю рядки данных?
  •  Шнур ошибки в блоке задвижки?
  •  сколько вариант сервера SQL на одной машине
  •  Внешний вид 2007 не может архивный файл открытой сети сохраненный
  •  Активно директория DNS записывает вопрос
  •  Отчет о доступа 2010 экспорта к CSV с коллекторами?
  •  Прокладчик OCE 9400 не начинает
  •  как добавить десятичное место в формуле в отчете о кристалла seagate
  •  Windows XP и Мичрософт Оутлоок и проблемы установителя Windows
  •  VB6 к VS2010 - консультации тренировки?
  •  
    programming4us programming4us