Johdanto
liiketoimintaskenaarioissa, joissa alustan on käsiteltävä yli 50000 tietuetta, erän Apex tulee pelastamaan. Erän Apex helpottaa asynkroninen käsittely tietueiden useita eriä tai palasia ja on helppo toteuttaa kehittäjälle.
täytäntöönpano erän Apex
erän Apex toteuttaa tietokannan.batchable interface. Rajapinnassa on alku (), Suorita() ja viimeistely () – menetelmät, jotka tulisi toteuttaa erän Apex-luokassa.
- Startmethod: Start method on keräyspiste tietueille, jotka käsitellään erän apex
- Execute method-menetelmällä: tietueiden varsinainen käsittely tapahtuu execute-menetelmällä.
- viimeistelytapa: Viimeistely menetelmiä voi olla post työn käsittely toimia, kuten lähettämällä sähköposteja tai sitä voidaan käyttää myös ketjuttaa toisen erän luokan.
erän kärjen ajoittaminen
menetelmä 1: Ootb-aikataulun Apex-toiminnon käyttäminen
vaiheet:
- napsauta Asetukset-painiketta ja etsi Apex-luokkia Pikahaku-ruudusta.
- Napsauta yläpaneelissa olevaa aikataulun Apex-painiketta.
3. Täytä tiedot aikataulun Apex record-sivulla ja tallenna. Apex-luokan tulee olla Scheduler-luokka, joka toteuttaa executebatch(batch) – menetelmän.
Scheduler-luokan koodinpätkä:
global class AccBatchScheduleClass implements Schedulable { global void execute(SchedulableContext ctx) { AccBatchApex batch = new AccBatchApex(); database.executebatch(batch); }}
Menetelmä 2: Eräluokan vetoaminen ajoituksen Apex:
Apex-luokka on luotava, jolloin ajoituksen apex tulee toteuttaa. Ajoituksen apex on toteutettava järjestelmä.Aikataulu () menetelmä erän kärjen tiedustelemiseksi suoritusjonossa. järjestelmä.Aikataulu () menetelmä odottaa kolme argumenttia viz Työnimi, Cron lauseke erän aikataulu ja erän luokan nimi.
Sample Schedulable Apex:
Batch Apex Chaining
with the relief of API version 29.0 ja sen jälkeen eräluokka voidaan ketjuttaa toiseen eräluokkaan. Ketjuttaminen erän apex kickstarts toteutus ketjutettu eräluokka kun toteutus perus eräluokka on päättynyt. Maksimissaan vain 5 Erätyötä voidaan ketjuttaa toisiinsa. Esimerkkikoodi erän Apexin ketjuttamiseen on esitetty alla:
erän Apex esimerkki
Käyttötapaus: Kansoita Laskutusvaltio Kaliforniaksi kaikille tileille, joissa maa on USA eikä Laskutusvaltion tietoja.
Ratkaisun Suunnittelu: Org on yli 50K kirjaa, jotka on skimmattu puuttuvien laskutus Valtion tiedot niin kirjoittaminen erän Apex on optimaalinen ratkaisu. Myös käynnistimet, työnkulut, Prosessinrakentajat jne. tarvitsee DML toiminta palo niin nämä ratkaisut eivät sovi täyttämään liiketoiminnan vaatimus.
muistettavia asioita
- enintään 5 erätyötä voi jonottaa tai olla aktiivisena samanaikaisesti.
- erän Apex-menetelmän teloitusten enimmäismäärä 24 tunnin aikana on 250 000 tai käyttäjän lisenssien määrä org: ssäsi kerrottuna 200: lla—kumpi on suurempi.
- QueryLocator-objektissa voidaan palauttaa enintään 50 miljoonaa levyä. Jos yli 50 miljoonaa levyä palautetaan, erätyö lopetetaan välittömästi ja merkitään epäonnistuneeksi.
- jos eräluokan startmetodi palauttaa Querylocatorin, executebatchin valinnaisen scope-parametrin arvo voi olla enintään 2 000.
- jos eräluokan aloitustapa palauttaa iteroitavan, scope-parametrin arvolla ei ole ylärajaa.
- aloitus -, suoritus-ja lopetusmenetelmillä voidaan toteuttaa jopa 100 soittoa kussakin. Toteuta AllowsCallouts mahdollistamiseksi callouts alkaen erän apex.
- tulevaisuuden menetelmiksi julistettuja menetelmiä ei voi kutsua erän huipulta.
- kaikki luokan menetelmät on määriteltävä globaaleiksi tai julkisiksi.
toteutuksen optimointi
- erän Apex-työt kulkevat nopeammin, kun startmetodi palauttaa alikerroksen kautta QueryLocator-objektin, joka ei sisällä aiheeseen liittyviä tietueita. Välttäen suhde subqueries QueryLocator mahdollistaa erätyöt ajaa käyttämällä nopeampaa, chunked täytäntöönpanoa.
- voit varmistaa erätöiden nopean suorittamisen minimoimalla verkkopalvelun kutsuajat ja virittämällä erätapex-koodissa käytetyt kyselyt.
- jokaista 10 000 Asyncapexjobrecordia kohden Apex luo Asyncapex-Työennätyksen tyypin BatchApexWorker sisäiseen käyttöön. Kun kyselet kaikkia Asyncapexjob-tietueita, suosittelemme, että suodatat BatchApexWorker-tyypin tietueet käyttäen JobType
- jakamisen uudelleenlaskentaa varten, suosittelemme, että suoritustapa poistaa ja luo sitten uudelleen kaikki Apex hallittu jakaminen erän tietueille. Tämä prosessi varmistaa, että jakaminen on tarkkaa ja täydellistä.
- käytä testimenetelmiä startTest ja stopTest executeBatch-menetelmän ympärillä varmistaaksesi, että se päättyy ennen kuin jatkat testiäsi.