Browsing tag

Apex Assíncrono

Apex assíncrono – Scheduled Apex – Parte 4

Chegamos ao nosso último post da série sobre Apex assíncrono, falei aqui sobre métodos futuros, classes Queueable e Batch Apex, e hoje para fechar o tema, vamos falar sobre as classes Scheduled Apex, bom mas chega de enrolação e vamos logo para o que interessa não é mesmo? O que é o Scheduled Apex? podemos programar para que ele seja executado TODOS os dias em um determinado horário As Scheduled Apex nos permite realizar o agendamento de uma execução do Apex em horário específicos, diferentemente que fizemos com o agendamento das classes Batch Apex, onde só podíamos adiar a sua execução, com o Scheduled Apex ganhamos um poder de escolha muito maior, podemos programar para que ele seja executado TODOS os dias em um determinado horário. Mas claro que podemos fazer ainda mais do que isso, podemos agendar uma execução para 2x por dia, ou até mesmo 1x por semana, você é quem escolhe quando o processo será executado. Quando usar uma Scheduled Apex O cenário mais comum é exatamente quando temos que executar um conjunto de código do Apex em um horário e dia especificos. Estrutura de uma Scheduled Apex As Scheduled Apex também são classes que precisam implementar […]

Apex assíncrono – Batch Apex – Parte 3

Dando continuidade a série de posts sobre Apex assíncrono, hoje vamos falar da Batch Apex, sem dúvida um dos mais complicados posts da série, e espero conseguir desmistificar e passar para você um overview bem bacana sobre ele, vamos lá? A mas se você ainda não leu o post sobre métodos futuros e sobre Queueable sugiro que de uma pausa na sua leitura, e leia esses posts antes :) O que é uma Batch Apex O Batch Apex é uma classe do Apex que implementa uma interface e dá ao desenvolvedor um poder de processamento enorme, permitindo que você enfileire inúmeros trabalhos do apex ao mesmo tempo, você pode ainda mover a ordem dos processos, obter o status do processamento, abordar o seu processamento e também realizar o agendamento, para que o seu processo seja executado em uma hora determinada por você. Quando usar uma Batch Apex Para tarefas de execução longa com grandes volumes de dados que precisam ser executados em lotes, como manutenção do banco de dados Para tarefas que precisam de resultados de consulta maiores do que as transações regulares permitem Estrutura de uma Batch Apex Uma classe Batch Apex, deve implementar a interface Database.Batchable<X> onde X é […]

Apex assíncrono – Queueable – Parte 2

Dando continuidade a série de posts sobre Apex Assíncrono, hoje falaremos sobre as classes Queueable, podemos dizer que as Queueable são uma evolução dos métodos futuros, pois nos permite ter controle da fila de execução. Se você não leu o post sobre métodos futuros, sugiro que de uma pausa nessa leitura, e de uma olhada nesse post. O que são classes Queueable? Podemos dizer que as classes Queueable são uma evolução dos métodos futuros, pois além de nos permitir realizar a execução de trabalhos do Apex assíncronos, também nos da um limite maior de governança da sua org, permitindo por exemplo a execução de mais SOQL dentro de uma mesma execução de processo do Apex, além de um limite de heap maior, e assim como os métodos futuros, as classes Queueable são executadas assim que a plataforma Salesforce considera que existem recursos livres para execução. Quando você adiciona uma classe Queueable a fila de execução, você recebe um ID único, isso nos permite obter um controle maior da fila de processos, permitindo obter o status do processo na fila, esses dados ficam no objeto AsyncApexJob, e com base no Id que recebemos podemos fazer uma consulta SOQL para obter mais […]

Apex assíncrono – Future Methods – Parte 1

Apex assíncronos, são eles: Future Methods, Queueable, Batch e Scheduled, este post será uma série dividida em 4 posts, e vamos começar falando dos Future Methods (Métodos futuros), quando usar, exemplos práticos, e cobertura de classe de testes. O que é um Future Methods? O Apex oferece várias maneiras de executar seu código Apex de forma assíncrona, uma delas são os Future Methods, e por ele ser assíncrono, você simplesmente não pode controlar quando o mesmo será executado, ele é controlado pela plataforma Salesforce, é a plataforma que escolhe o melhor momento para a execução de um trecho de código do Apex em um Future Method e essa execução são levadas em consideração a disponibilidades de recurso disponíveis na sua org no momento de solicitação de execução. Um dos grandes benefício de usar Future Methods é que alguns limites de governança são maiores, como por exemplo o limites de consulta SOQL e limites de tamanho de heap. Quando usar um Future Methods? Quando você tem um processo demorado e precisa prevenir atrasos em sua transação Apex Quando você realiza chamada a serviços da Web externos (Por exemplo uma consulta a base de CEP de um serviço REST) Para segregar operações DML […]