2012-08-28 19 views
5

Başlangıç ​​URL'si ile tohum parametresi olarak taranan bir web tarayıcısı geliştirdim. Kullanıcıların bu görevi mümkünse bir İş açısından planlamasına izin vermek istiyorum.Yay 3 kullanarak Dinamik İş Zamanlaması

Şu anda Spring 3.1.2 ve Hibernate kullanıyorum. Kullanıcılara, cronJob Parametrelerini alan ve tarayıcıyı çalıştırmak istediğime dayanan bir ön uç vermeliyim. Yay kullanarak yapmak mümkün mü?

Quartz hakkında biraz bilgi okudum, ancak SO'daki veya diğer web sitelerindeki makaleler tamamen açık değil ya da bir programlayıcının ilkbaharda nasıl uygulanacağını tam olarak anlamak için tamamlanmadı.

Ben

  1. SchedulerFacotry üç bileşeni
  2. Tetik
  3. Meslek (Servis Çalıştır) Birinin doğru yönde bana yol umut

olduğunu temellerini bilmek.

cevap

9

Quartz zamanlayıcı, iş için doğru bir araçtır. Bazı nedenlerle, hemen hemen tüm dersler XML'de başlangıçta iş tanımlamaya odaklanırken, Quartz, çalışma zamanında (re- | un-) zamanlama işlerini tam olarak yapabilir.

Quartz Zamanlayıcı'yı başlatmak için İlkbahar'dan faydalanabilirsiniz ve kullanmalısınız, ancak kodunuzla doğrudan etkileşimde bulunabilirsiniz. İşte

JobDetail job = newJob(SimpleJob.class) 
    .withIdentity("job1", "group1") 
    .build(); 

CronTrigger trigger = newTrigger() 
    .withIdentity("trigger1", "group1") 
    .withSchedule(cronSchedule("0/20 * * * * ?")) 
    .build(); 

scheduler.scheduleJob(job, trigger); 

Eğer tetik (çalıştırmak için zaman, kullanıcı sağlayabilmektedir herhangi bir geçerli CRON ifade) bir (çalıştırmak için Java kod parçası) tanımlamak ve sar: İşte basit bir örnek from the documentation olduğunu tüm bunları zamanlayarak. zamanlayıcı örneğinin Spring tarafından enjekte edilebilir. İlkbahar da uygun kapatma işlemlerini gerçekleştirecek.

+0

Cevabınız için teşekkür ederiz. ancak, Quartz kullanarak değil, bahar tarafından sağlanan TimerFactoryBean' ScheduledTask'ı kullanarak bunu yapmak mümkündür .. Dokümantasyonda olduğu gibi, bu yöntem hakkında da bir söz vardır. bunu keşfettin mi? –

+1

'newJob (...)' aslında JobBuilder.newJob (...) 'dir. Yukarıdaki örnekte, varsayım, "newJob (...)" statik yönteminin statik olarak içe aktarıldığından, onu sınıf adına göre göndermeye gerek olmamasıdır. –

+0

Aynı şey, 'TriggerBuilder.newTrigger() 've' CronScheduleBuilder.cronSchedule (...) ' –

İlgili konular