Introduksjon Til Batch Apex + Eksempler

Del denne artikkelen…

Introduksjon

For forretningsscenarier som krever at plattformen behandler mer enn 50 000 poster, Kommer Batch Apex til redning. Batch Apex forenkler asynkron behandling av postene i flere grupper eller biter og er grei å implementere for en utvikler.

Implementering Av Batch Apex

Batch Apex implementerer Databasen.batchable grensesnitt. Grensesnittet har Start (), Execute() og Finish () metoder som skal implementeres i Batch Apex-klassen.

  1. Startmethod: Startmethod Er et samlingspunkt for postene som skal behandles i utførelsesmetoden for batch apex
  2. Utførelsesmetode: den faktiske behandlingen av postene finner sted i utførelsesmetoden.
  3. Fullfør metode: Fullfør metoder kan ha etter jobb behandling handlinger som å sende e-post eller det kan også brukes til å kjede en annen batch klasse.

Planlegge Batch Apex

Metode 1: Bruke Ootb Tidsplan Apex funksjonalitet

Trinn:

  1. Klikk På Oppsett og søk Etter Apex-Klasser i hurtigsøk-boksen.
  2. Klikk På Schedule Apex-knappen øverst i panelet.

3. Fyll ut informasjonen på Planlegg Apex-postsiden og Lagre. Apex-klassen skal Være Scheduler-klassen som implementerer executebatch (batch) – metoden.

Kodebit for Scheduler-Klassen:

global class AccBatchScheduleClass implements Schedulable { global void execute(SchedulableContext ctx) { AccBatchApex batch = new AccBatchApex(); database.executebatch(batch); }}

Metode 2: Påkalle Batchklasse via Schedulable Apex:

Apex-klassen skal opprettes som skal implementere Schedulable apex. Den Schedulable apex må implementere Systemet.Schedule () metode for å enqueue satsvise apex i kjøringskøen. system.Schedule () – metoden forventer tre argumenter, nemlig Jobbnavn, Cron-uttrykk for batchplanen og batchklassenavnet.

Eksempel Planlegges Apex:

Batch Apex Kjeding

med utbruddet AV API versjon 29.0 og etter, kan en batch klasse være lenket til en annen batch klasse. Kjeding av batch apex kickstarter utførelsen av den kjedede batchklassen når utførelsen av basepartiklassen er ferdig. Maksimalt kan bare 5 Batchjobber kjedes til hverandre. Eksempelkodebiten for kjetting av satsvise Apex er vist nedenfor:

Satsvise Apex Eksempel

Brukstilfelle: Fyll Ut Faktureringstilstanden Som California for Alle Kontoene Med Land SOM USA og ingen Faktureringstilstandsinformasjon.

Løsningsdesign: Organisasjonen har mer ENN 50K-poster som må skummet for den manglende Faktureringstilstandsinformasjonen, slik at Det å skrive Batch Apex er den optimale løsningen. Også Utløsere, Arbeidsflyter, Prosessbyggere etc. VIL trenge EN DML-operasjon for å brenne, slik at disse løsningene ikke passer for å oppfylle forretningsbehovet.

ting å huske

  • Opptil 5 satsvise jobber kan være i kø eller aktiv samtidig.
  • maksimalt antall batch Apex-metodeutførelser per 24-timers periode er 250 000, eller antall brukerlisenser i organisasjonen multiplisert med 200-avhengig av hva som er størst.
  • maksimalt 50 millioner poster kan returneres I querylocator-objektet. Hvis mer enn 50 millioner poster returneres, avsluttes den satsvise jobben umiddelbart og merkes Som Mislyktes.
  • hvis startmethod for satsvis klasse returnerer En QueryLocator, kan den valgfrie områdeparameteren for executeBatch ha en maksimumsverdi på 2000.
  • hvis startmetoden for satsvis klasse returnerer en iterable, har parameterverdien omfang ingen øvre grense.
  • start -, utfør-og sluttmetodene kan implementere opptil 100 bildeforklaringer hver. Implementere AllowsCallouts for å aktivere bildeforklaringer fra Batch apex.
  • Metoder deklarert som future kan ikke kalles fra en satsvis Apex-klasse.
  • alle metoder i klassen må defineres som globale eller offentlige.

Optimalisere Implementeringen

  • Satsvise Apex-jobber kjøres raskere når startmethod returnerer Et querylocator-objekt som ikke inkluderer relaterte poster via en delspørring. Unngå forholdet subqueries i En QueryLocator lar batch jobber for å kjøre ved hjelp av en raskere, chunked implementering.
  • for å sikre rask utførelse av satsvise jobber, minimerer du webtjenestens bildeforklaringstider og justerer spørringer som brukes i Satsvise Apex-kode.
  • For hver 10 000 AsyncApexJobrecords oppretter Apex en asyncapexjob-post av Typen BatchApexWorker for intern bruk. Når du spør etter alle asyncapexjob-poster, anbefaler vi at du filtrerer ut poster av Typen BatchApexWorker ved hjelp Av JobType
  • for en omberegning av deling, anbefaler vi at utfør-metoden sletter og deretter oppretter All Apex-administrert deling for postene i satsvise. Denne prosessen sikrer at deling er nøyaktig og fullstendig.
  • Bruk Testmetodene startTest og stopTest rundt executeBatch-metoden for å sikre at den er ferdig før du fortsetter testen.

You might also like

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.