2012-12-20 19 views
5

ho bisogno di creare lavoro che:Quarzo - pianificare i processi ogni due settimane su più giorni della settimana e ora

  • inizia uno 12/20/2012
  • endDate = 2017/12/31
  • avverrà ogni 2 settimane domenica e lunedì
  • incendi alle 17:00.

questa espressione di cron è valida?

Date start = 12/20/2012; 
Date endDate = 12/31/2017; 
SimpleTrigger trigger = newTrigger() 
    .withIdentity("trigger3", "group1") 
    .startAt(startDate) 
    .withSchedule(cronSchedule("* * 17 0 0/2 *,SUN,MON").build()) 
    .endAt(endDate) 
    .build; 

Si prega di avvisare.

+1

Penso * * 17 * 0 0/2, SUN, MON – Mukus

+0

Per impostare un processo cron che si verifica alle 17:00 ogni domenica e lunedì sarà 0 17 * * 0,1 dove 0 = minuti, 17 = ore, * = giorno del mese, * = mese, 0,1 = domenica, lunedì o giorno della settimana con domenica come 0 e sabato come 7. Non riesco a pensare a come impostare ogni due settimane con questo. Non penso che il giorno del mese e il giorno della settimana possano essere usati contemporaneamente. Questo potrebbe non essere vero. – Mukus

+0

Sei riuscito a capirlo? Hai usato qualche altro strumento per raggiungerlo? – user2023507

risposta

1

Suggerisco di eseguire un test unitario in base all'espressione cron. Con complimenti a Van de Voorde Toni, si può basare su questo codice, e utilizzarlo per verificare che il "nextValidTimeAfter" corrisponde al tuo aspettativa:

import java.text.ParseException; 
import java.util.Date; 

import org.quartz.CronExpression; 

public class CronTester { 

    public static void main(String[] args) throws ParseException { 
     final String expression = "* * 17 0 0/2 *,SUN,MON"; 
     final CronExpression cronExpression = new CronExpression(expression); 

     final Date nextValidDate1 = cronExpression.getNextValidTimeAfter(new Date()); 
     final Date nextValidDate2 = cronExpression.getNextValidTimeAfter(nextValidDate1); 

     System.out.println(nextValidDate1); 
     System.out.println(nextValidDate2); 

    } 
} 
+0

questa espressione cron non è valida. provalo su cronMaker.com –

Problemi correlati