Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Quartz, Job отрабатывает сразу псоле создания 
:(
    Опции темы
cosmonaft
Дата 18.3.2008, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 11.1.2008

Репутация: нет
Всего: нет



Сразу после создания триггера начинает отрабатывать джоб. Вот такой код:
Код

...
SchedulerFactory sf = new StdSchedulerFactory("quartz.properties");
Scheduler sched = sf.getScheduler();
sched.start();

JobDetail job = new JobDetail("job", Scheduler.DEFAULT_GROUP, Job.class);
CronTrigger trigger = new CronTrigger("trigger", null, "0 0 8 * * ?");
trigger.setStartTime(getStartDate);
trigger.setEndTime(getEndDate);
sched.scheduleJob(job, trigger);

Раньше такого не замечал. Спустя некоторое время, когда вновь взялся зв кварц, появился этот глюк. 
С чем это может быть связано?



PM MAIL   Вверх
cosmonaft
Дата 18.3.2008, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 11.1.2008

Репутация: нет
Всего: нет



Блин, и это еще не весь глюк. Сразу после создания триггера и джоба, они успешно сохраняются в соответствующие таблицы, но после отработки джоба удаляются оттуда. Я сижу в шоке!!! Что происходит?
PM MAIL   Вверх
Zamuta
Дата 18.3.2008, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 18.1.2006

Репутация: 4
Всего: 6



cosmonaft, что за переменная getStartDate ? И зачем тебе setStartTime и setEndTime? Попробуй без них. Это CRON триггер. У тебя он выполняется 8:00:00 ежедневно, начало выполнения здесь у тебя в 8:00:00. (Trigger will fired...) 

По поводу таблиц покажи quartz.properties и какой JobStore используешь TX или CMT ?


--------------------
Thank you opensource.
PM MAIL ICQ   Вверх
cosmonaft
Дата 18.3.2008, 22:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 11.1.2008

Репутация: нет
Всего: нет



Zamuta, спасибо, ты меня спас!!! У меня моск чуть не отвалился...
Точно, все дело getStartDate. Там стояла прошедшая дата, поэтому и сразу отрабатывал джоб. Если поставть будущую дату, то все ОК. Однако хотелось бы знать как избежать этого срабатывания в случае прошледшей даты.

Даты getStartDate и  getEndDate нужны, т.к. это есть задаваемый юзером промежуток срабатывания. А в самом cron выражении такого не сделаешь.

Использую  JobStoreTX. Я понял почему происходит удаление из таблиц, однако что делать пока не знаю. Все дело в ДОЛБАНОМ хибернейте. Я в метод, что приведен выше передаю объект. И он каким-то хитровые...ым способом делает откат изменений...
PM MAIL   Вверх
Zamuta
Дата 18.3.2008, 23:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 18.1.2006

Репутация: 4
Всего: 6



cosmonaft
Цитата

Даты getStartDate и  getEndDate нужны, т.к. это есть задаваемый юзером промежуток срабатывания.

Почему не сделаешь? Например 0 0/5 8 * * ? начнёт запускаться в 8:00:00 и будет выполняться каждые 5 минут до 8:55:00.
Не стоит играться с setStartTime и endTime, это же не SimpleTrigger, а Cron.
Цитата

Все дело в ДОЛБАНОМ хибернейте.

Да, есть такое, кварц с хибернейтом не дружит, т.к. последний делает недоступной бд для кварца. Попробуй поиграться с JobStore. В книге Quartz Job Scheduling Framework есть подробное описание настроек.


--------------------
Thank you opensource.
PM MAIL ICQ   Вверх
cosmonaft
Дата 18.3.2008, 23:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 11.1.2008

Репутация: нет
Всего: нет



Цитата(Zamuta @ 18.3.2008,  23:18)
Почему не сделаешь? Например 0 0/5 8 * * ? начнёт запускаться в 8:00:00 и будет выполняться каждые 5 минут до 8:55:00.
Не стоит играться с setStartTime и endTime, это же не SimpleTrigger, а Cron.

Все дело в том, что юзер может задать даты срабатывания, например с 23.12.08 до 16.02.09. А такое условие в cron выражение не загонишь.
PM MAIL   Вверх
Zamuta
Дата 18.3.2008, 23:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 18.1.2006

Репутация: 4
Всего: 6



cosmonaft,  smile это же cron.  0 0 12 23-16 DEC-FEB * 2008-2009 или   0 0 12 23-16 12-2 * 2008-2009 .

Добавлено через 3 минуты и 45 секунд
Нет, дни неправильно. Уважаемый All, как правильно прописать дни? 


--------------------
Thank you opensource.
PM MAIL ICQ   Вверх
cosmonaft
Дата 19.3.2008, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 11.1.2008

Репутация: нет
Всего: нет



А я тебе скажу как  smile , используя setStartTime и setEndTime. Даже в книге "Quartz Job Scheduling Framework" пример такой есть.
PM MAIL   Вверх
cosmonaft
Дата 19.3.2008, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 11.1.2008

Репутация: нет
Всего: нет



Да, уж... 
Только, что разобрался почему происходило удаление триггеров и джобов. Опять же все дело оказалось в датах startDate и endDate, а не в хибернейте... Триггеры и джобы автоматом удаляются самим кварцом, если они больше не отработают, т.е. если в таблице, поле NEXT_FIRE_TIME будет больше поля END_TIME. Вот такой вот "сборщик мусора", йопта. И нигде не написано. И два дня в трубу...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.1186 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.