| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > Quartz |
| Автор: cosmonaft 18.3.2008, 19:03 | ||
Сразу после создания триггера начинает отрабатывать джоб. Вот такой код:
Раньше такого не замечал. Спустя некоторое время, когда вновь взялся зв кварц, появился этот глюк. С чем это может быть связано? |
| Автор: cosmonaft 18.3.2008, 20:04 |
| Блин, и это еще не весь глюк. Сразу после создания триггера и джоба, они успешно сохраняются в соответствующие таблицы, но после отработки джоба удаляются оттуда. Я сижу в шоке!!! Что происходит? |
| Автор: Zamuta 18.3.2008, 22:22 |
| cosmonaft, что за переменная getStartDate ? И зачем тебе setStartTime и setEndTime? Попробуй без них. Это CRON триггер. У тебя он выполняется 8:00:00 ежедневно, начало выполнения здесь у тебя в 8:00:00. (Trigger will fired...) По поводу таблиц покажи quartz.properties и какой JobStore используешь TX или CMT ? |
| Автор: cosmonaft 18.3.2008, 22:56 |
| Zamuta, спасибо, ты меня спас!!! У меня моск чуть не отвалился... Точно, все дело getStartDate. Там стояла прошедшая дата, поэтому и сразу отрабатывал джоб. Если поставть будущую дату, то все ОК. Однако хотелось бы знать как избежать этого срабатывания в случае прошледшей даты. Даты getStartDate и getEndDate нужны, т.к. это есть задаваемый юзером промежуток срабатывания. А в самом cron выражении такого не сделаешь. Использую JobStoreTX. Я понял почему происходит удаление из таблиц, однако что делать пока не знаю. Все дело в ДОЛБАНОМ хибернейте. Я в метод, что приведен выше передаю объект. И он каким-то хитровые...ым способом делает откат изменений... |
| Автор: Zamuta 18.3.2008, 23:18 | ||||
cosmonaft,
Почему не сделаешь? Например 0 0/5 8 * * ? начнёт запускаться в 8:00:00 и будет выполняться каждые 5 минут до 8:55:00. Не стоит играться с setStartTime и endTime, это же не SimpleTrigger, а Cron.
Да, есть такое, кварц с хибернейтом не дружит, т.к. последний делает недоступной бд для кварца. Попробуй поиграться с JobStore. В книге Quartz Job Scheduling Framework есть подробное описание настроек. |
| Автор: cosmonaft 18.3.2008, 23:30 | ||
Все дело в том, что юзер может задать даты срабатывания, например с 23.12.08 до 16.02.09. А такое условие в cron выражение не загонишь. |
| Автор: Zamuta 18.3.2008, 23:37 |
| cosmonaft, Добавлено через 3 минуты и 45 секунд Нет, дни неправильно. Уважаемый All, как правильно прописать дни? |
| Автор: cosmonaft 19.3.2008, 11:04 |
| А я тебе скажу как |
| Автор: cosmonaft 19.3.2008, 12:14 |
| Да, уж... Только, что разобрался почему происходило удаление триггеров и джобов. Опять же все дело оказалось в датах startDate и endDate, а не в хибернейте... Триггеры и джобы автоматом удаляются самим кварцом, если они больше не отработают, т.е. если в таблице, поле NEXT_FIRE_TIME будет больше поля END_TIME. Вот такой вот "сборщик мусора", йопта. И нигде не написано. И два дня в трубу... |