Questo testo è stato tradotto utilizzando il sistema di traduzione automatica di Salesforce. Partecipa al nostro sondaggio per fornire un feedback su questo contenuto e dirci cosa vorresti vedere dopo.
Note
Panoramica della guida
Questa guida consente di valutare l'approccio corretto per i requisiti di elaborazione asincrona nella piattaforma Salesforce. Spiega ogni approccio, descrivendone i punti di forza e le limitazioni. La maggior parte degli approcci sono allineati a una funzione del prodotto, ma alcuni utilizzano più funzioni in coordinamento. La guida include casi d'uso per evidenziare quando utilizzare ogni approccio.
L'elaborazione asincrona offre due vantaggi principali per l'architettura. Innanzitutto, aumenta la scalabilità perché i processi asincroni hanno limiti governor più elevati. In secondo luogo, le richieste asincrone vengono eseguite nei propri thread in modo che gli utenti possano eseguire altro lavoro mentre le operazioni asincrone vengono eseguite in background.
Tenere presente che questa guida si concentra esclusivamente sulla scelta di una tecnologia di elaborazione asincrona all'interno di Salesforce Platform. Altre risorse utili per il processo decisionale sono elencate nella sezione Risorse.
Prodotti nell'ambito di questa guida
| Salesforce Lightning Platform è una piattaforma completa basata sull'intelligenza artificiale che unifica dipendenti, agenti autonomi dell'intelligenza artificiale, dati aziendali e applicazioni in un unico sistema affidabile per migliorare la produttività e l'esperienza dei clienti. Consente la creazione di un'"azienda autentica" collegando le app Customer 360, Data Cloud e Slack per l'automazione end-to-end. |
Questo documento non tratta le tecnologie in altri ecosistemi come MuleSoft, Informatica, Commerce Cloud, Tableau e Marketing Cloud.
Takeaway
- Prima di utilizzare l'elaborazione asincrona, assicurarsi che i casi d'uso corrispondano allo schema. Gli schemi asincroni non hanno SLA, sono soggetti a più meccanismi governor, possono avere limiti di capacità definiti in base alle licenze e possono causare ritardi di elaborazione a causa della natura finita delle risorse allocate all'infrastruttura asincrona all'interno di Salesforce Platform. Tenere presenti le seguenti limitazioni quando si utilizza l'elaborazione asincrona in scenari in cui un utente richiede una risposta dal sistema prima di poter continuare a lavorare.
- L'elaborazione asincrona con Salesforce non è una soluzione per esigenze di scalabilità infinite. Salesforce Platform non scala all'infinito e gli schemi asincroni sono soggetti a limitazioni. L'elaborazione asincrona utilizza i thread, che contengono le informazioni contestuali necessarie a una CPU per eseguire un flusso di istruzioni. I thread possono essere eseguiti in parallelo. Il numero di thread disponibili in qualsiasi CPU è limitato, quindi la piattaforma dispone di meccanismi per utilizzare i thread disponibili nel modo più efficiente possibile. Il meccanismo di controllo del flusso della piattaforma evita che le organizzazioni consumino troppi thread e influiscano negativamente sulle altre organizzazioni. L'algoritmo di fair use della piattaforma controlla anche il numero di thread disponibili per un'organizzazione per ogni tipo di messaggio specifico.
- Tenere conto degli eventi che possono causare carichi estremi. Quando si progettano processi asincroni, assicurarsi che siano in grado di gestire in modo prevedibile picchi e pause del carico di lavoro. Considerare il modo in cui l'implementazione gestisce gli eventi imprevisti, ad esempio le interruzioni di corrente, e progettare misure di protezione che riducono la perdita di dati o di funzionalità.
Confronto dei prodotti
Questa tabella descrive gli strumenti disponibili per l'elaborazione asincrona con Salesforce. Fare riferimento a questa tabella per esaminare le principali caratteristiche di ogni strumento durante il processo decisionale. Vedere Casi d'uso e punti decisionali per informazioni sulla scelta degli strumenti più adatti alla propria architettura.
| Approccio | Descrizione | Competenze richieste | Licenze e limiti |
|---|---|---|---|
| Apex in area di attesa | Utilizzare per processi che comportano operazioni di database di lunga durata o chiamate a servizi Web esterni. Queueable Apex offre funzioni come ID processo, supporto per tipi non primitivi e concatenamento dei processi. | Pro-code | Il numero di licenze può aumentare i limiti. |
| Batch Apex | Creare processi complessi e di lunga durata che coinvolgono milioni di record suddividendo l'insieme di record ed elaborandolo in blocchi gestibili. | Pro-code | Il numero di licenze può aumentare i limiti. |
| Apex pianificato | Eseguire Apex a un'ora pianificata definita da un'espressione cron. Sebbene l'atto di pianificare Apex tramite l'espressione cron sia un processo asincrono, il codice sottostante viene eseguito in modo sincrono all'avvio del processo. | Pro-code | Il numero di licenze può aumentare i limiti. |
| Chiamate continuazione Apex | Eseguire chiamate dai metodi Apex in esecuzione in un contesto di transazione sincrona. | Pro-code | No |
| Percorso asincrono (flussi attivati da record) | Eseguire un'operazione che si desidera eseguire nel proprio tempo. Evitare errori DML misti che si verificano quando si aggiorna un valore di un record correlato che non fa parte del record che ha attivato un flusso. | Basso codice | Il numero e il tipo di licenze possono aumentare i limiti. |
| Percorso pianificato (dopo l'impegno dei flussi) | Eseguire l'esecuzione in un momento pianificato dinamicamente dopo un evento di attivazione, ad esempio quando viene creato, aggiornato o eliminato un record. | Basso codice | Il numero e il tipo di licenze possono aumentare i limiti. |
| Flussi pianificati | Eseguire un flusso in background a un'ora specificata e con una frequenza ripetuta (giornaliera, settimanale o una volta) per eseguire azioni su un batch di record. | Basso codice | Il numero e il tipo di licenze possono aumentare i limiti. |
| Trigger evento piattaforma | Associare liberamente Salesforce a sistemi esterni e comunicare tra componenti asincroni all'interno di Salesforce Platform. | Low-code + Pro-code | Per i casi d'uso di eventi piattaforma a volume elevato è necessaria una licenza aggiuntiva |
| Modifica acquisizione dati | Acquisire ed elaborare gli eventi di modifica in modo asincrono dopo la conferma della transazione del database. | Pro-code | Per scalare al di sopra dell'allocazione di base è necessaria una licenza aggiuntiva. |
| Bulk API | Inserire, aggiornare, inserire con aggiornamento, eseguire query o eliminare molti record in modo asincrono ed elaborare i risultati in un secondo momento. | Pro-code | Ci sono dei limiti. |
| Azioni Lightning | Consente alle pagine Lightning di interagire con il server senza costringere gli utenti ad aggiornare completamente la pagina. | Basso codice | No |
Punti decisione
Questa tabella contiene una panoramica dei punti da considerare quando si decide quale strumento asincrono utilizzare.
| Competenze richieste | Alcuni degli strumenti descritti in questa guida richiedono codice, mentre altri possono essere configurati in modo dichiarativo. Quando si valutano le opzioni disponibili, pensare alle competenze dei membri del team. Tenere presente che anche se gli sviluppatori sono disponibili per l'implementazione iniziale (ad esempio tramite un partner di implementazione), potrebbe essere necessario modificare le soluzioni in futuro. Se il team di manutenzione non dispone di sviluppatori, un'opzione low-code può essere più adatta. |
| Tipo di limiti della piattaforma applicati | Determinare il tipo di limiti che si applicano all'esecuzione. Durante la progettazione delle soluzioni, riflettere attentamente su come il volume e la frequenza delle transazioni verranno conteggiati ogni giorno nei limiti stabiliti dal governor per l'approccio scelto. Calcolare il numero di esecuzioni che si verificheranno ogni giorno. Assicurarsi che i valori calcolati rientrino nei limiti associati agli strumenti selezionati. |
| Latenza | Determinare la velocità con cui i risultati dell'elaborazione saranno disponibili nella piattaforma. Per alcuni approcci, i cambiamenti saranno quasi immediati, mentre per altri possono essere minuti o ore. |
Casi d'uso
Quando si seleziona uno strumento per l'elaborazione asincrona, valutare innanzitutto i requisiti dell'organizzazione e le risorse disponibili. L'obiettivo è selezionare lo strumento o gli strumenti che riducono al minimo i costi di implementazione e manutenzione, garantendo al contempo la scalabilità e riducendo al minimo la probabilità di violazioni dei limiti. Questo obiettivo dipende dalle considerazioni tecniche descritte in precedenza e dalla composizione del team.
Si consideri un processo di ordinazione asincrono in Salesforce. Quando un ordine viene salvato, viene attivato un messaggio a un sistema di gestione del magazzino esterno con istruzioni speciali su come imballare e spedire un articolo. Poiché l'utente che effettua l'ordine non necessita di una risposta immediata dal sistema di gestione del magazzino, la richiesta può essere inviata in modo asincrono. L'elaborazione asincrona consente all'utente di continuare il lavoro senza attendere una risposta.
Per questo caso d'uso, può essere utile implementare Apex. Questo approccio funzionerà solo se nel team sono presenti sviluppatori Apex in grado di gestire la soluzione pro-code. In caso contrario, un approccio dichiarativo ha più senso. Inoltre, tenere presente che diversi insiemi di limiti si applicano a strumenti diversi.
In questa tabella sono elencati i casi d'uso comuni nella colonna più a sinistra, seguiti da una descrizione. La colonna Prima scelta fornisce l'approccio più tipico utilizzato per soddisfare un caso d'uso di questo tipo, insieme alla logica dell'approccio Prima scelta. Utilizzarlo come punto di partenza nell'analisi: l'approccio Prima scelta potrebbe avere limitazioni che non funzioneranno per il proprio caso d'uso.
| Caso d'uso | Descrizione | Approccio di prima scelta | Motivo |
|---|---|---|---|
| Elaborazione batch ad alte prestazioni | Qualsiasi automazione che deve elaborare migliaia o milioni di record in modo efficiente | Batch Apex | Batch Apex fornisce API complete per l'interfacciamento con la piattaforma e per la velocità di stampa. |
| Processo di pulitura dati | Un processo eseguito regolarmente o su richiesta che pulisce i dati. Gli esempi includono l'annullamento della duplicazione, la verifica dell'indirizzo o il consolidamento dei dati. | Batch Apex | Batch Apex fornisce API complete per l'interfacciamento con la piattaforma e per la velocità di stampa. |
| Nightly Roll-up Job (Lavoro di roll-up notturno) | Processo che calcola i dati di roll-up al termine di una giornata lavorativa. | Batch Apex | Batch Apex fornisce API complete per l'interfacciamento con la piattaforma e per la velocità di stampa. |
| Logica attivata da record | Eseguire la logica in risposta a un aggiornamento di record. | Varia | Vedere la guida alle decisioni associata, Automazione eventi attivati da record. Include un albero decisionale per i casi d'uso asincroni, tra cui Apex inseribile in area di attesa, Apex batch, Apex pianificato, Flusso pianificato, Flussi percorso asincrono e Acquisizione dati di modifica. |
| Aggiornamenti a catena tramite un grafico a oggetti | Consente di completare rapidamente l'azione di salvataggio di un utente, rinviando l'esecuzione asincrona degli aggiornamenti a catena ad altri oggetti. | Apex in area di attesa | Queueable Apex dispone di potenti funzioni di concatenazione che consentono alla logica di suddividere una catena di aggiornamenti in una serie di transazioni asincrone. |
| Elaborazione pianificata specifica del record | Automazione in una data futura e dinamica specifica del record (ad esempio, 3 giorni prima di una data di chiusura). | Flusso con un percorso pianificato | I percorsi pianificati rappresentano un punto di forza unico per il flusso, poiché la piattaforma gestisce automaticamente la pianificazione, l'annullamento e la riprogrammazione di questi percorsi se i dati del record cambiano. |
| Invocazione di più servizi esterni lenti in parallelo | Durante un'esecuzione sincrona, più servizi esterni vengono richiamati in parallelo per ottimizzare il tempo di esecuzione complessivo. | Chiamate continuazione Apex | Consentendo l'esecuzione parallela di più callout a esecuzione lenta si riduce al minimo il tempo complessivo per completare il lavoro. |
| Migrazione dei dati dei record da un sistema esterno | Spostare grandi quantità di record in Salesforce Platform da un sistema esterno. Un processo singolo o pianificato regolarmente. | API in bulco | Questo è l'approccio più efficiente e rispettoso dei limiti per la migrazione dei dati. |
| Esecuzione di logica aggiuntiva in un sistema esterno | Schema Fire-and-forget che prevede la notifica di un evento sulla piattaforma a un sistema esterno e quindi l'elaborazione asincrona dell'evento. | Eventi piattaforma o acquisizione dati modifica | Un modello pub-sub funziona meglio qui e consente al sistema esterno di elaborare l'evento quando è pronto. Per ulteriori dettagli su questo schema, vedere Architettura basata sugli eventi. |
La tabella Casi d'uso è una guida all'approccio più adatto per ogni caso d'uso. Tuttavia, sarà necessario verificare se la tecnologia First Choice soddisfa le esigenze specifiche del proprio caso d'uso. In particolare, determinare se l'approccio scelto può rispettare i limiti del governor per l'organizzazione.
Dopo aver identificato un approccio candidato per il proprio caso d'uso, la Guida ai fondamenti sull'elaborazione asincrona può essere utile per un controllo completo della soluzione.
Risorse
Queste risorse aggiuntive possono essere utili per il processo decisionale:
- Approfondisci la conoscenza di ciascuna delle tecnologie asincrone della piattaforma: Nozioni di base sull'elaborazione asincrona
- Scegliere tra Apex e Flusso per i trigger di record: Automazione degli eventi attivati da record
- Informazioni sugli schemi di integrazione asincrona: Architettura basata sugli eventi
10 minute read
