2013-03-10 14 views
9

Czy jest możliwe utworzenie daty w JodaTime, a następnie sprawdzenie harmonogramu kwarcu za pomocą obiektu JodaTime? Czy możemy podać okres jodaPeriod do Quartz API, aby uruchomić zadanie na określony czas w ciągu jednego dnia?Jakiś związek między API Quartz a API Joda Time?

Czy dwa interfejsy API są powiązane i/lub kompatybilne w jakikolwiek sposób?

+0

Czy chcesz zaplanować zadanie do powtórzenia w odstępie określonym przez okres czasu Joda? – darrenmc

+0

@darrenmc - nie tylko ten jeden przypadek użycia. Chcę być w stanie zrobić wszystko, co kwarc może zrobić, ale najlepiej za pomocą jody. –

Odpowiedz

2

AxonFramework ma QuartzEventScheduler, który wygląda tak, jak robi to, co chcesz.

Oto downlaod page i jest objęty licencją Apache 2.0.

+0

CQRS (Axon jest strukturą CQRS) to Segregacja odpowiedzialna za zapytanie o komendy - http://martinfowler.com/bliki/CQRS.html –

+0

Edd - czy możesz podać mi więcej takich przykładów? Wygląda na to, że ta struktura wykorzystuje tylko niewielką część Quartz i joda. Wydaje się, że nie ma poparcia dla wykonywania zadania wielokrotnie po pewnym okresie lub okresie trwania Jody. Szukałem większej integracji między tymi dwoma. –

2

Kwarc zapewnia całkiem rozbudowane API, które można rozbudować w dowolny sposób.
Zaczep, który trzeba utworzyć, byłby niezgodny z interfejsem Trigger. Stworzyłem go wcześniej, ale nie wykorzystałem czasu Joda.

Z dźwięków Twojego pytania, jeśli chcesz utworzyć pracę, która działa przez określony czas, możesz również po prostu spróbować użyć CronTrigger. Na przykład, aby uruchomić każdą minutę między 9 rano a 11 rano można zrobić

* 9-10 * * * 

Oczywiście Joda sprawia, że ​​znacznie łatwiej jest skonfigurować ale twoi administratorów szanują cię bardziej do cron ...

2

zacząłem używać Joda Czas w nowszych częściach aplikacji mojej firmy i stwierdziłem, że łatwiej jest łączyć ze starszymi częściami (w tym harmonogramem kwarcu), konwertując obiekt Joda Time z powrotem na java.util.Date, którego starsze części wciąż oczekują. Mam nadzieję, że to pomoże.

+0

tak, ale to jest ręczne. Ale chcę uniknąć daty, ponieważ większość z nich jest przestarzała i prawdopodobnie Joda zastąpi obecny system czasu. –

+1

JSR-310 (threeten) https://github.com/ThreeTen/threeten zwiększy datę zamiast Jody w Javie 8. Mają podobieństwa, ale jest też wiele ulepszeń w trenecie nad Jodą. – Jim

2

TriggerBuilder ma fragment, jak zaplanować pracę ręcznie:

JobDetail job = newJob(MyJob.class) 
     .withIdentity("myJob") 
     .build(); 

Trigger trigger = newTrigger() 
     .withIdentity(triggerKey("myTrigger", "myTriggerGroup")) 
     .withSchedule(simpleSchedule() 
      .withIntervalInHours(1) 
      .repeatForever()) 
     .startAt(futureDate(10, MINUTES)) 
     .build(); 

scheduler.scheduleJob(job, trigger); 

trzeba będzie popracować konwersji dla startAt() i withIntervalInHours() ... masz dryfu

+0

+1 dla przykładu. Chciałabym, żeby Quart dodał trochę wbudowanego wsparcia dla jody. W przeciwnym razie będę musiał wykonać wszystkie konwersje i ekstrakcję pola ręcznie. –

Powiązane problemy