Denne veiledningen hjelper deg å evaluere den riktige tilnærmingen for dine asynkrone behandlingskrav på Salesforce-plattformen. Den forklarer hver løsning og beskriver styrkene og begrensningene for hver av dem. De fleste tilnærminger er justert med en produktfunksjon, men noen tilnærminger bruker flere funksjoner i koordinering. Veiledningen inneholder brukstilfeller for å fremheve når hver løsning skal brukes.

Asynkron behandling gir to hovedfordeler for arkitekturen. Først øker den skalerbarheten fordi asynkrone prosesser har høyere styringsgrenser. Deretter utføres asynkrone forespørsler i sine egne tråder slik at brukere kan gjøre annet arbeid mens de asynkrone oppgavene utføres i bakgrunnen.

Vær oppmerksom på at denne veiledningen fokuserer utelukkende på å velge en asynkron behandlingsteknologi i Salesforce Platform. Andre ressurser som hjelper beslutningsprosessen, er oppført i Ressurser-delen.

Salesforce Platform Salesforce Lightning Platform er en omfattende AI-drevet plattform som forener ansatte, autonome AI-agenter, firmadata og applikasjoner i ett enkelt, pålitelig system for å forbedre produktiviteten og kundeopplevelsen. Den aktiverer opprettelse av et "agentistisk foretak" ved å koble til Customer 360, Data Cloud og Slack for ende-til-ende-automatisering.

Dette dokumentet dekker ikke teknologier i andre økosystemer som MuleSoft, Informatica, Commerce Cloud, Tableau og Marketing Cloud.

  • Før du bruker asynkron behandling må du forsikre deg om at bruksområdet passer til mønsteret. Asynkrone mønstre har ingen tjenestenivåavtale, er underlagt flere styringsmekanismer, kan ha kapasitetsgrenser definert basert på lisensiering, og kan føre til behandlingsforsinkelser på grunn av den endelige naturen til ressursene som er tildelt til asynkron infrastruktur i Salesforce Platform. Ta hensyn til disse begrensningene når du bruker asynkron behandling i scenarier der en bruker krever et svar fra systemet før brukeren kan fortsette arbeidet sitt.
  • Asynkron behandling med Salesforce er ikke en løsning for behov for grenseløs skalering. Salesforce Platform skaleres ikke uendelig, og asynkrone mønstre er underlagt begrensninger. Asynkron behandling bruker tråder, som inneholder kontekstinformasjonen som en CPU trenger for å utføre en strøm av instruksjoner. Tråder kan kjøres parallelt. Antall tilgjengelige tråder i en hvilken som helst CPU er begrenset, så plattformen har mekanismer på plass for å bruke sine tilgjengelige tråder så effektivt som mulig. Plattformens flytkontrollmekanisme hindrer at organisasjoner bruker for mange tråder og påvirker andre organisasjoner negativt. Plattformens fair use-algoritme styrer også antall tråder som en organisasjon har tilgjengelig for hver bestemt meldingstype.
  • Ta hensyn til hendelser som kan forårsake ekstreme belastninger. Når du utformer asynkrone prosesser, må du forsikre deg om at de kan håndtere arbeidsbelastningsspiker og nedturer på en forutsigbar måte. Vurder hvordan implementeringen håndterer uventede hendelser, som strømavbrudd, og utform sikkerhetstiltak som reduserer tap av data eller tap av funksjonalitet.

Denne tabellen viser verktøyene som er tilgjengelig for asynkron behandling med Salesforce. Se denne tabellen for å se gjennom de viktigste egenskapene til hvert verktøy under beslutningsprosessen. Se Brukstilfeller og beslutningspunkter for å få hjelp til å velge de riktige verktøyene for arkitekturen.

Tilnærming Beskrivelse Kvalifikasjoner som kreves Lisenser og grenser
Apex i kø Brukes til prosesser som involverer langvarig kjøring av databaseoperasjoner eller oppkall til eksterne nettjenester. Apex tilbyr funksjoner som jobb-IDer, støtte for ikke-primitive typer og jobbkjetting. Pro-kode Antall lisenser kan øke grensene.
Batch Apex Bygg komplekse, langvarige prosesser som involverer millioner av poster, ved å dele opp postsettet og behandle det i administrerbare biter. Pro-kode Antall lisenser kan øke grensene.
Planlagt Apex Utfør Apex på et planlagt tidspunkt som er definert av et cron-uttrykk. Selv om handlingen med å planlegge Apex via cron-uttrykket er en asynkron prosess, utføres den underliggende koden synkront når jobben starter. Pro-kode Antall lisenser kan øke grensene.
Apex-fortsettelsesoppkall Utfør oppkall fra Apex som kjører i en synkron transaksjonskontekst. Pro-kode Nei
Asynkron bane (postutløste flyter) Utfør en operasjon som du vil kjøre på eget tidspunkt. Unngå blandede DML-feil som oppstår når du oppdaterer en verdi i en relatert post som ikke er en del av posten som utløste en flyt. Lavkode Antall og type lisenser kan øke grensene.
Planlagt bane (etter forpliktet flyter) Utfør på et dynamisk planlagt tidspunkt etter en utløsende hendelse, som når en post opprettes, oppdateres eller slettes. Lavkode Antall og type lisenser kan øke grensene.
Planlagte flyter Utfør en flyt i bakgrunnen på et angitt tidspunkt og med gjentatt frekvens (daglig, ukentlig eller én gang) for å utføre handlinger på en batch med poster. Lavkode Antall og type lisenser kan øke grensene.
Plattformhendelsesutløsere Koble løs Salesforce til eksterne systemer og kommuniser mellom asynkrone komponenter i Salesforce Platform. Lavkode + Pro-kode En tilleggslisens kreves for brukstilfeller med plattformhendelser med stor trafikk
Change Datafangst Registrer og behandle endringshendelser asynkront etter at databasetransaksjonen er utført. Pro-kode En tilleggslisens kreves for å skalere over standardtildelingen.
Bulk API Sett inn, oppdater, oppdater, spør eller slett mange poster asynkront, og behandle resultatet senere. Pro-kode Det er grenser.
Lightning-handlinger Tillat at Lightning samhandler med serveren uten å tvinge brukere til å oppdatere siden fullstendig. Lavkode Nei

Denne tabellen inneholder en oversikt over punkter som bør vurderes når du bestemmer hvilket asynkront verktøy som skal brukes.

Kvalifikasjoner kreves Noen av verktøyene som er skissert i denne veiledningen, krever kode, mens andre kan konfigureres deklarativt. Når du vurderer alternativene, bør du tenke over kvalifikasjonssett som teammedlemmene har. Husk at selv om utviklere er tilgjengelig for den første implementeringen (for eksempel via en implementeringspartner), kan det hende du må endre løsningene i fremtiden. Hvis vedlikeholdsteamet mangler utviklere, kan et alternativ med lite kode være bedre egnet.
Type plattformgrenser håndhevet Bestem typen grenser som gjelder for utførelsen. Når du utformer løsningene dine, bør du tenke nøye over hvordan volumet og frekvensen av transaksjoner vil telle mot styringsgrensene for den valgte tilnærmingen hver dag. Beregne antall utførelser som skal skje hver dag. Forsikre deg om at de beregnede verdiene er innenfor grensene som er knyttet til de valgte verktøyene.
Latens Bestem hvor raskt resultatet av behandlingen skal være tilgjengelig i plattformen. For enkelte tilnærminger vil endringene være nesten umiddelbare, mens for andre kan det ta minutter eller timer.

Når du velger et verktøy for asynkron behandling, må du først evaluere organisasjonens behov og tilgjengelige ressurser. Målet ditt er å velge verktøyet eller verktøyene som minimerer implementerings- og vedlikeholdskostnader, men likevel sikrer skalerbarhet og minimerer sannsynligheten for begrensede brudd. Dette målet er avhengig av de tekniske vurderingene som er skissert tidligere, i tillegg til teamets sammensetning.

Vurder en asynkron bestillingsprosess i Salesforce. Når en bestilling lagres, utløses det en melding til et eksternt lagerbehandlingssystem med spesielle instruksjoner om hvordan en artikkel pakkes og sendes. Brukeren som legger inn bestillingen, trenger ikke et umiddelbart svar fra lagerbehandlingssystemet, så forespørselen kan sendes asynkront. Den asynkrone behandlingen lar brukeren fortsette arbeidet sitt uten å vente på et svar.

I dette tilfellet kan du vurdere å implementere med Apex. Denne tilnærmingen vil bare fungere hvis du har Apex i teamet som kan vedlikeholde pro-kodeløsningen. Ellers er en deklarativ tilnærming mer fornuftig. Husk også at forskjellige sett med grenser gjelder for forskjellige verktøy.

Denne tabellen viser vanlige brukstilfeller i kolonnen lengst til venstre fulgt av en beskrivelse. Kolonnen Førstevalg gir den mest typiske tilnærmingen som brukes til å tilfredsstille et slikt bruksområde, sammen med begrunnelsen for First Choice-tilnærmingen. Bruk dette som et utgangspunkt i analysen din – First Choice-tilnærmingen kan ha begrensninger som ikke vil fungere for bruksområdet.

Brukstilfelle Beskrivelse Første valg-tilnærming Rasjonalitet
Høy ytelse batchbehandling Eventuell automatisering som må behandle tusenvis eller millioner av poster effektivt Batch Apex Apex tilbyr rike API-er for grensesnittet til plattformen og for rå hastighet.
Data Cleansing-jobb En jobb som kjører rutinemessig eller på forespørsel, og som renser data. Eksempler er fjerning av duplikater, adressebekreftelse eller datakonsolidering. Batch Apex Apex tilbyr rike API-er for grensesnittet til plattformen og for rå hastighet.
Oppsummeringsjobb om natten Jobb som beregner oppsummerte data på slutten av en arbeidsdag. Batch Apex Apex tilbyr rike API-er for grensesnittet til plattformen og for rå hastighet.
Postutløst logikk Utfør logikk som svar på en postoppdatering. Varierer Se vår ledsagerbeslutningsveiledning, Postutløste hendelsesautomatisering. Den inneholder et beslutningstre for asynkrone brukstilfeller, inkludert Apex i kø, Apex i batch, Planlagt Apex, Planlagt flyt, Asynkrone banestrømmer og Endre datafangst.
Gjennomgående oppdateringer gjennom en objektgraf Lar en brukers lagringshandling utføres raskt, og utsetter gjennomgripende oppdateringer til andre objekter for å kjøre asynkront. Købar Apex Apex har kraftige kjedefunksjoner som gjør det mulig å dele opp en kjede med oppdateringer i en rekke asynkrone transaksjoner.
Postspesifikk planlagt behandling Automatisering på en fremtidig, dynamisk dato spesifikk for posten (for eksempel 3 dager før en avslutningsdato). Flyt med en planlagt bane Planlagte baner gir en unik styrke for flyten fordi plattformen automatisk håndterer planlegging, kansellering og planlegging på nytt av disse banene hvis postens data endres.
Kall flere trege eksterne tjenester parallelt Under en synkron utførelse kalles flere eksterne tjenester opp parallelt for å optimalisere den generelle utførelsestiden. Fortsettelsesoppkall for Apex Hvis du tillater at flere kall som kjører tregt, kjøres parallelt, minimeres den samlede tiden det tar å fullføre arbeidet.
Dataoverføring av poster fra et eksternt system Flytt store mengder poster til Salesforce Platform fra et eksternt system. Enten en engangs eller regelmessig planlagt prosess. Bulk-API Dette er den mest effektive og begrensningsvennlige løsningen for dataoverføring.
Utføre tilleggslogikk på et eksternt system Fire-and-Forget-mønster for å varsle et eksternt system om en hendelse på plattformen, og deretter tillate at dette systemet behandler hendelsen asynkront. Plattformhendelser eller endringsdatafangst En pub-under-modell fungerer best her, og lar det eksterne systemet behandle hendelsen når den er klar. Se arrangementsdrevet arkitektur for å få flere detaljer om dette mønsteret.

Tabellen Brukstilfeller er en veiledning til den beste tilnærmingen for hvert bruksområde. Du må imidlertid validere hvor godt First Choice-teknologien passer til de spesifikke behovene i bruksområdet. Bestem spesielt om den valgte løsningen kan overholde styringsgrensene for organisasjonen.

Når du har identifisert en kandidat tilnærming for ditt bruksområde, kan Asynchronous Processing Fundamentals Guide hjelpe deg med å fullstendig undersøke løsningen.

Disse ekstra ressursene kan hjelpe med beslutningsprosessen: