Denne vejledning hjælper dig med at evaluere den rigtige tilgang til dine asynkrone behandlingsbehov på Salesforce Platform. Den forklarer hver tilgang og detaljerer styrken og begrænsningerne for hver. De fleste tilgange er i overensstemmelse med en produktfunktion, men nogle tilgange bruger flere funktioner i koordinering. Vejledningen indeholder anvendelsessituationer til at fremhæve, hvornår hver tilgang skal bruges.
Asynkron behandling giver to større fordele for din arkitektur. Først øger det skalerbarheden, fordi asynkrone processer har højere styringsbegrænsninger. For det andet køres asynkrone anmodninger i deres egne tråde, så brugere kan udføre andet arbejde, mens de asynkrone opgaver køres i baggrunden.
Bemærk, at denne vejledning udelukkende fokuserer på valg af en asynkron behandlingsteknologi i Salesforce Platform. Andre ressourcer til at hjælpe din beslutningsproces er angivet i afsnittet Ressourcer.
| Salesforce Lightning Platform er en omfattende, AI-drevet platform, der forener medarbejdere, autonome AI-agenter, firmadata og applikationer i et enkelt, betroet system for at forbedre produktiviteten og kundeoplevelsen. Den aktiverer oprettelsen af en "agentvirksomhed" ved at tilslutte Customer 360, Data Cloud og Slack til end-to-end-automatisering. |
Dette dokument dækker ikke teknologier i andre økosystemer, f.eks. MuleSoft, Informatica, Commerce Cloud, Tableau og Marketing Cloud.
- Før du bruger asynkron behandling, skal du sørge for, at dine anvendelsessituationer passer til mønsteret. Asynkrone mønstre har ingen servicelaftale, er underlagt flere styringsmekanismer, kan have kapacitetsgrænser defineret baseret på licens og kan forårsage behandlingsforsinkelser på grund af den begrænsede karakter af de ressourcer, der er tildelt til asynkron infrastruktur i Salesforce Platform. Overvej disse begrænsninger, når du bruger asynkron behandling i scenarier, hvor en bruger kræver et svar fra systemet, før vedkommende kan fortsætte med sit arbejde.
- Asynkron behandling med Salesforce er ikke en løsning på grænseløse skaleringsbehov. Salesforce Platform skaleres ikke uendeligt, og asynkrone mønstre er underlagt begrænsninger. Asynkron behandling bruger tråde, som indeholder de kontekstoplysninger, som en CPU har brug for for at køre en stream af instruktioner. Tråde kan køre parallelt. Antallet af tilgængelige tråde i enhver CPU er begrænset, så platformen har mekanismer til at bruge sine tilgængelige tråde så effektivt som muligt. Platformens forløbskontrolmekanisme forhindrer organisationer i at forbruge for mange tråde og påvirke andre organisationer negativt. Platformens fair-use algoritme styrer også antallet af tråde, som en organisation har tilgængelige for hver bestemt meddelelsestype.
- Tag højde for begivenheder, der kan forårsage ekstreme belastninger. Når du designer asynkrone processer, skal du sørge for, at de forudsigeligt kan håndtere spidsbelastning og lukninger. Overvej, hvordan din implementering håndterer uventede begivenheder, f.eks. strømafbrydelser, og design sikkerhedsforanstaltninger, der reducerer tab af data eller tab af funktionalitet.
Denne tabel skitserer de værktøjer, der er tilgængelige for asynkron behandling med Salesforce. Se i denne tabel for at gennemse hvert værktøjs større karakteristika under din beslutningsproces. Se Brug sager og beslutningspunkter for at få hjælp til at vælge de rigtige værktøjer til din arkitektur.
| Tilgang | Beskrivelse | Påkrævede færdigheder | Licenser og begrænsninger |
|---|---|---|---|
| Apex i kø | Bruges til processer, der involverer langsigtede databasehandlinger eller eksterne webtjenesteudkald. Købar Apex tilbyder funktioner som job-id'er, understøttelse af ikke-primitive typer og jobkædning. | Pro-kode | Antallet af licenser kan øge grænserne. |
| Batch Apex | Opbyg komplekse, længe kørende processer, der involverer millioner af registreringer, ved at opdele dit registreringssæt og behandle det i administrerbare segmenter. | Pro-kode | Antallet af licenser kan øge grænserne. |
| Planlagt Apex | Kør Apex på et planlagt tidspunkt, der er defineret af et Cron-udtryk. Selvom planlægning af Apex via Cron-udtrykket er en asynkron proces, udføres den underliggende kode synkront, når jobbet starter. | Pro-kode | Antallet af licenser kan øge grænserne. |
| Apex-forlængelsesudkald | Udføre udkald fra Apex, der kører i en synkron transaktionskontekst. | Pro-kode | Nej |
| Asynkron sti (registreringsudløste forløb) | Udfør en handling, som du ønsker at køre på sin egen tid. Undgå blandede DML-fejl, der forekommer, når du opdaterer en værdi på en relateret registrering, der ikke er del af den registrering, der udløste et forløb. | Lav kode | Antallet og typen af licenser kan øge grænserne. |
| Planlagt sti (efter bekræftelsesforløb) | Kør på et dynamisk planlagt tidspunkt efter en udløserbegivenhed, f.eks. når en registrering oprettes, opdateres eller slettes. | Lav kode | Antallet og typen af licenser kan øge grænserne. |
| Planlagte forløb | Kør et forløb i baggrunden på et angivet tidspunkt og med en gentaget frekvens (dagligt, ugentligt eller en gang) for at udføre handlinger på en batch af registreringer. | Lav kode | Antallet og typen af licenser kan øge grænserne. |
| Platformsbegivenhedsudløsere | Løbende parring af Salesforce med eksterne systemer og kommunikation mellem asynkrone komponenter i Salesforce Platform. | Lav kode + Pro-kode | Der kræves en tilføjelsesprogramlicens til brug af store platformsbegivenheder |
| Ændring af dataregistrering | Registrer og behandl ændringsbegivenheder asynkront, når databasetransaktionen er bekræftet. | Pro-kode | En tilføjelsesprogramlicens kræves for at skalere over basislinjetildelingen. |
| Bulk API | Indsæt, opdater, upsert, forespørg eller slet mange registreringer asynkront, og behandl resultaterne senere. | Pro-kode | Der er grænser. |
| Lightning-handlinger | Tillad Lightning at interagere med serveren uden at tvinge brugere til at opdatere siden fuldstændigt. | Lav kode | Nej |
Denne tabel indeholder en oversigt over punkter, du bør overveje, når du beslutter, hvilket asynkront værktøj du vil bruge.
| Påkrævede færdigheder | Nogle af de værktøjer, der er skitseret i denne vejledning, kræver kode, mens andre kan konfigureres deklarativt. Når du overvejer dine muligheder, skal du tænke over de færdighedssæt, som dine teammedlemmer har. Husk på, at selvom udviklere er tilgængelige for din indledende implementering (f.eks. gennem en implementeringspartner), skal du muligvis redigere dine løsninger i fremtiden. Hvis dit vedligeholdelsesteam mangler udviklere, kan en indstilling med lav kode være en bedre løsning. |
| Type af håndhævet platformsbegrænsning | Bestem typen af grænser, der gælder for kørslen. Når du designer dine løsninger, skal du overveje omhyggeligt, hvordan mængden og frekvensen af transaktioner tæller med i styringsbegrænsningerne for den valgte tilgang hver dag. Beregn antallet af eksekveringer, der skal forekomme hver dag. Sørg for, at de beregnede værdier falder inden for de grænser, der er knyttet til dine valgte værktøjer. |
| Varighed | Bestem, hvor hurtigt resultaterne af behandling vil være tilgængelige på platformen. For nogle tilgange vil ændringerne blive rapporteret øjeblikkelige, mens det for andre kan være minutter eller timer. |
Når du vælger et værktøj til asynkron behandling, skal du først evaluere din organisations krav og tilgængelige ressourcer. Dit mål er at vælge det værktøj eller værktøjer, der minimerer implementerings- og vedligeholdelsesomkostninger, men stadig sikrer skalerbarhed og minimerer din sandsynlighed for grænseovertrædelser. Dette mål afhænger af de tekniske overvejelser, der er skitseret tidligere, samt udformningen af dit team.
Overvej en asynkron bestillingsproces i Salesforce. Når en bestilling gemmes, udløser den en meddelelse til et eksternt lagerstyringssystem med særlige instruktioner om, hvordan en vare pakkes og sendes. Den bruger, der afgiver bestillingen, behøver ikke et øjeblikkeligt svar fra lagerstyringssystemet, så anmodningen kan sendes asynkront. Den asynkrone behandling gør det muligt for brugeren at fortsætte sit arbejde uden at vente på et svar.
I denne anvendelsessituation kan du overveje at implementere med Apex. Denne tilgang vil kun fungere, hvis du har Apex i dit team, der kan vedligeholde din pro-code-løsning. Ellers giver en deklarativ tilgang mere mening. Husk også på, at forskellige sæt af grænser gælder for forskellige værktøjer.
Denne tabel viser almindelige anvendelsessituationer i den venstre kolonne efterfulgt af en beskrivelse. Kolonnen Første valg angiver den mest typiske tilgang, der anvendes til at opfylde en sådan anvendelsessituation, sammen med grundlaget for Første valg-tilgangen. Brug dette som et udgangspunkt i din analyse – First Choice-tilgangen kan have begrænsninger, der ikke vil fungere for din anvendelsessituation.
| Anvendelsessituation | Beskrivelse | Første valg-tilgang | Rationel |
|---|---|---|---|
| Høj ydeevne batchbehandling | Enhver automatisering, der skal behandle tusindvis eller millioner af registreringer effektivt | Batch Apex | Batch Apex leverer omfattende API'er til grænseflade med platformen og for rå hastighed. |
| Dataoprydningsjob | Et job, der kører rutinemæssigt eller on-demand, der renser data. Eksempler omfatter fjernelse af dubletter, adressebekræftelse eller datakontrol. | Batch Apex | Batch Apex leverer omfattende API'er til grænseflade med platformen og for rå hastighed. |
| Nattoprulningsjob | Job, der beregner oprulningsdata i slutningen af en arbejdsdag. | Batch Apex | Batch Apex leverer omfattende API'er til grænseflade med platformen og for rå hastighed. |
| Registreringsudløst logik | Kør logik som reaktion på en registreringsopdatering. | Varierer | Se vores ledsagende beslutningsvejledning, Automatisering af registreringsudløste begivenheder. Det indeholder et beslutningstræ for asynkrone anvendelsessituationer, herunder Apex i kø, Batch Apex, Planlagt Apex, Planlagt forløb, asynkrone stiforløb og ændringsdataregistrering. |
| Cascading opdateringer gennem et objektdiagram | Tillader, at en brugers lagringshandling fuldføres hurtigt, og udsætter overlappende opdateringer til andre objekter til at køre asynkront. | Købar Apex | Købar Apex har effektive kædefunktioner, der gør det muligt for logik at opdele en kæde af opdateringer i en række asynkrone transaktioner. |
| Registreringsspecifik planlagt behandling | Automatisering på en fremtidig dynamisk dato, der er specifik for registreringen (f.eks. 3 dage før en lukkedato). | Forløb med en planlagt sti | Planlagte stier giver forløbet en unik styrke, da platformen automatisk håndterer planlægning, annullering og omplanlægning af disse stier, hvis registreringens data ændres. |
| Kald af flere langsomme eksterne tjenester parallelt | Under en synkron kørsel kaldes flere eksterne tjenester parallelt for at optimere den generelle kørselstid. | Fortsættelse af Apex-udkald | Tilladelse af flere langsomt kørende udkald til at køre parallelt minimerer den generelle tid til at fuldføre arbejdet. |
| Dataoverførsel af registreringer fra et eksternt system | Flyt store mængder registreringer til Salesforce Platform fra et eksternt system. Enten en engangs- eller regelmæssig planlagt proces. | Bulk API | Dette er den mest effektive og grænsevenlige tilgang til datamigrering. |
| Udfør yderligere logik på et eksternt system | Fire-og-glem-mønster for at advisere et eksternt system om en begivenhed på platformen og derefter tillade dette system at behandle begivenheden asynkront. | Platformsbegivenheder eller ændringsdataregistrering | En pub-under-model fungerer bedst her og tillader det eksterne system at behandle begivenheden, når den er klar. Se Begivenhedsstyret arkitektur for at få flere oplysninger om dette mønster. |
Tabellen Anvendelsessituationer er en vejledning til den bedst tilpassede tilgang for hver anvendelsessituation. Men du skal validere, hvor godt First Choice-teknologien passer til de specifikke behov i din anvendelsessituation. Bestem især, om den valgte tilgang kan overholde styringsbegrænsningerne for din organisation.
Når du har identificeret en kandidattilgang til din anvendelsessituation, kan Asynchronous Processing Fundamentals Guide hjælpe med at gennemgå løsningen fuldt ud.
Disse yderligere ressourcer kan hjælpe med din beslutningsproces:
- Gå i detaljer med hver af platformens asynkrone teknologier: Asynkron behandling grundlæggende
- Valg mellem Apex og Forløb for registreringsudløsere: Automatisering af registreringsudløste begivenheder
- Oplysninger om asynkrone integrationsmønstre: Begivenhedsstyret arkitektur