Software detaljer:
Quartz er et open source og gratis, alle funktioner finplanlægning service, der kan integreres med, eller anvendes langs siden stort set alle Java EE eller Java SE ansøgning - fra det mindste enkeltstående program til det største e-handel system .
Quartz kan bruges til at oprette simple eller komplekse tidsplaner for udførelse tiere, hundreder, eller endda titusindvis-of-tusindvis af arbejdspladser; job, hvis opgaver er defineret som standard Java-komponenter, der kan udføres stort set alt, du kan programmere dem til at gøre. Quartz Scheduler indeholder mange enterprise-klassen funktioner, såsom JTA transaktioner og klyngedannelse.
Funktioner :
- Runtime Environments:
- Quartz kan køre indlejret i en anden fritstående program
- Quartz kan instantieres i en applikationsserver (eller servlet container), og deltage i XA transaktioner
- Quartz kan køre som en stand-alone program (inden for sin egen Java Virtual Machine), som skal anvendes via RMI
- Quartz kan instantieres som en klynge af enkeltstående programmer (med load-balance og fail-over kapaciteter)
- Job Planlægning:
- Jobs er planlagt til at køre, når en given Trigger opstår. Kan oprettes udløsere med næsten en hvilken som helst kombination af følgende direktiver ...
- på et bestemt tidspunkt på dagen (til millisekund)
- på bestemte dage i ugen
- på visse dage i måneden
- på bestemte dage af året
- ikke på visse dage, der er anført i et registreret Kalender (såsom business helligdage)
- gentages et bestemt antal gange
- gentages, indtil et bestemt tidspunkt / dato
- gentages i det uendelige
- gentages med en forsinkelse interval
Hvad er nyt i denne udgivelse:
- Oversigt over de fleste betydelige API ændringer:
- API metoder der returnerer (eller tage som parametre) arrays nu tilbage (eller tage) indtastet samlinger. For eksempel, snarere end getJobGroupNames (): String [] vi nu har getJobGroupNames (): List
- Job og Trigger identifikation er nu baseret på JobKey og TriggerKey. Nøgler omfatter både et navn og gruppe. Metoder, der opererer på bestemte job / udløser nu tage nøglerne som parameter. For eksempel getTrigger (TriggerKey tasten): Trigger, snarere end getTrigger (String navn, String gruppe):. Trigger
- Trigger er nu en grænseflade, snarere end en klasse. Ligeledes for SimpleTrigger, CronTrigger etc.
- Ny DSL / bygherre-baserede API til byggeri Job og Triggers:
- Metoder fra TriggerUtils relateret til let konstruktion af datoer er flyttet til nye DateBuilder klasse, der kan bruges med statisk import til pænt skabe Dato instanser for trigger start og sluttidspunkter, etc.
- StatefulJob interfacet er blevet forældet til fordel for nye anmærkninger for Job klasser klasse-niveau (ved hjælp af både anmærkninger producerer svarer til den gamle StatefulJob interface):
- ersistJobDataAfterExecution - instruerer scheduler til at re-gemme Jobs JobDataMap indhold efter udførelse fuldender .
- isallowConcurrentExecution - instruerer scheduler til at blokere andre forekomster af det samme job (ved JobKey) fra udføre, når man allerede er .
- Ny anmærkning:ExecuteInJTATransaction. Tilføje denne anmærkning til et job klasse instruerer Quartz at starte et JTA transaktion, før du udfører jobbet (og begå / rollback efter afslutningen / undtagelse). Konfigurationen ejendomsret «wrapJobExecutionInUserTransaction" fra version 1.x stadig eksisterer, men den nye annotation lader dig tune adfærd på pr job, mens config ejendom påvirker alle arbejdspladser.
- Væsentlige ændringer brugen af JobListener og TriggerListener:
- Fjernelse af skelnen mellem "global" og "ikke-globale" lyttere
- JobDetails og Triggers ikke længere konfigureret med en liste over navne på lyttere til at anmelde stedet lyttere identificere, hvilke job / udløser de er interesseret i.
- lyttere nu tildelt et sæt af Matcher tilfælde -., som giver matchende regler for job / udløser de ønsker at modtage hændelser for
- Lyttere nu styres via en ListenerManager API, snarere end direkte med Scheduler API.
- SchedulerException klasse og klasse hierarki er blevet renset op.
- DateIntervalTrigger blev omdøbt til CalendarIntervalTrigger (eller flere nøjagtig den konkrete klasse er nu CalendarIntervalTriggerImpl).
- Begrebet (ejendom) af "volatilitet" af arbejdspladser og udløsere er blevet elimineret.
- Ny trigger fejltænding instruktion MISFIRE_INSTRUCTION_IGNORE_MISFIRE_POLICY lader en trigger konfigureres på en sådan måde, at det selektivt ignoreres fra alle fejltænding håndtering. Med andre ord vil det brand, så snart det kan, uden særlig håndtering - en stor mulighed for at forbedre ydeevnen især med opsætninger, der har masser af one-shot (ikke-gentagelse) udløser .
- Trigger s compareTo () metode nu korrekt angår dens ligestillede () metode, idet den sammenligner udløseren nøgle, snarere end næste brand tid. En ny Komparator der sorterer udløser ifølge brand tid, prioritet og nøgle blev tilføjet som Trigger.TriggerTimeComparator.
- Nye funktioner:
- Scheduler.clear () metode giver praktisk (og farligt!) Måde at fjerne alle jobs, udløser og kalendere fra planlæggeren.
- Scheduler.scheduleJobs (Map triggersAndJobs, boolean erstatte) metode giver nemmere at tilsætning af arbejdspladser og udløsere.
- Scheduler.unscheduleJobs (liste triggerKeys) metode giver nem hovedparten unscheduling arbejdspladser.
- Scheduler.deleteJobs (liste jobKeys) metode giver nemmere at sletning af arbejdspladser (og relaterede udløser).
- Scheduler.checkExists (JobKey jobKey) og Scheduler.heckExists (TriggerKey triggerKey) metoder giver nem måde at afgøre unikke i job / trigger nøgler (i modsætning til gamle have for at skulle hente jobbet / trigger ved navn og derefter kontrollere, om resultatet var null).
- JDBCJobStore tillader nu et sæt tabeller, der skal bruges af flere forskellige scheduler forekomster
- JDBCJobStore er nu i stand til at lagre ikke-kerne Trigger implementeringer uden brug BLOB kolonner, ved brug af den nye TriggerPersistenceDelegate interface, som kan (valgfrit) gennemføres ved Aktører af brugerdefinerede Trigger-typer.
- JDBCJobStore omfatter nu en SybaseDelegate for forbedret kompatibilitet med Sybase
- Cron udtryk understøtter nu muligheden for at angive en offset for "sidste dag i måneden" og "sidste hverdag i måneden" udtryk. For eksempler:. "L-3" (tre dage tilbage fra den sidste i måneden) eller "L-3W" (nærmeste ugedag til den dag tre dage tilbage fra den sidste dag i måneden)
- XML-filer, der indeholder planlægning data har nu en måde at angive udløse starte gange som forskydninger i fremtiden fra det tidspunkt, hvor filen er behandlet (nyttigt for udløser, der har brug for at begynde at affyre nogen tid efter programmet startes / indsat).
- Fra skema:
- XML-fil skema nu understøtter angivelse af »prioritet« egenskab af udløser.
- QuartzInitializerListener (og QuartzInitializerServlet) støtter ny parameter "vent-on-shutdown", som vil medføre, at Scheduler til at vente på at udføre opgaver at fuldføre, før lukke ned, når Servlet container er un-implementering af programmet.
- Tilføjet DirectoryScanJob til centrale job, skib med Quartz, også tilføjet mindstealder parameter til allerede eksisterende FileScanJob.
- Tilføjet mulighed for at tilføje ServletContext i SchedulerContext når du bruger QuartzInitializerListener eller QuartzInitializerServlet at initialisere Quartz inden for en Java EE webapplikation.
- Diverse:
- Forskellige præstationsforbedringer, herunder (men ikke begrænset til):
- Mulighed for at batch-erhverve udløsere, der er klar til at blive fyret, som kan give præstationsforbedringer for meget travlt opgavestyringsprogrammer
- Metoder til batch tillæg / fjernelse af arbejdspladser og udløser (se "Nye funktioner")
- Triggers har en ny fejltænding instruktion mulighed, MISFIRE_INSTRUCTION_IGNORE_MISFIRE_POLICY, hvilket kan være nyttigt, hvis du ikke kræver fejltænding håndtering for din udløser (r), og ønsker at drage fordel af en performance gevinst
- Diverse fejlrettelser, for komplet liste se release noter fra Jira: https://jira.terracotta.org/jira/secure/ReleaseNote.jspa?projectId=10282&version=10842
- DBCP der ikke længere anvendes til database forbindelse pooling er C3PO anvendes i stedet.
- JobFactory implementeringer er nu initialiseret med (bestået) et håndtag til Scheduler.
- Alle eksemplerne pakket i? Eksempler? bibliotek af Quartz distributionen er blevet opdateret til at gøre brug af (demonstrere) det nye API til at definere job og udløsere.
Hvad er nyt i version 1.6.6:
- nogle vigtige fejlrettelser
- et par mindre forbedringer
Krav :
- Java 2 Standard Edition Runtime Environment
Kommentarer ikke fundet