Otimização dos seus fluxos de trabalho
Ao criar um fluxo de trabalho, é essencial garantir que ele seja executado da maneira mais eficiente possível. Este documento apresenta cenários que podem restringir seus fluxos de trabalho ou levar ao esgotamento dos limites da API, além de oferecer dicas para resolver ou mitigar esses problemas.
Nesta página
Problemas comuns de desempenho
A seção descreve cenários comuns que podem causar problemas de desempenho em seus fluxos de trabalho. É possível ter mais de um cenário ao mesmo tempo, o que aumentaria a probabilidade de você observar problemas de desempenho. Para erros relacionados à configuração do editor ou limitação de taxa, use o guia de solução de problemas.
Acionadores de alto volume
Acionadores de alto volume são aqueles em que o evento subjacente ocorre com grande frequência. Por exemplo, o acionador variante do produto volume de estoque mudava as execuções para cada mudança de estoque em uma loja. O volume de um acionador é como um multiplicador de qualquer problema no seu fluxo de trabalho. Por exemplo, se um fluxo de trabalho busca 100 produtos e é executado 1.000 vezes por minuto, ele buscará 100.000 produtos por minuto. Isso pode causar problemas de desempenho.
Solução: otimize seus fluxos de trabalho usando menos dados ou use etapas de espera para particionar o fluxo de trabalho conforme descrito abaixo.
Muitos fluxos de trabalho usando o mesmo acionador
No Flow, você pode criar mais de um fluxo de trabalho usando o mesmo acionador. Esses fluxos de trabalho serão executados em paralelo quando o evento acontecer. Isso pode ser problemático se você executar muitos fluxos de trabalho usando o mesmo acionador pelos seguintes motivos:
- Os fluxos de trabalho podem entrar em conflito uns com os outros.
- Os fluxos de trabalho estão simultaneamente buscando dados e chamando APIs, enquanto sua loja opera dentro dos limites de solicitações simultâneas permitidos pelos limites da API do Shopify.
Solução: combine fluxos de trabalho que usam o mesmo acionador em um único fluxo de trabalho. Isso também permite que você controle quando cada um deles é executado, para que não entrem em conflito um com o outro. Combine fluxos de trabalho é especialmente útil se os fluxos de trabalho não recuperam muitos dados ou se os dados recuperados são os mesmos. Se os fluxos de trabalho recuperam muitos dados distintos, você pode descobrir que mantê-los separados resulta em melhor desempenho.
Uso de listas ou dados errados
Ao criar um fluxo de trabalho, você pode usar uma lista de objetos, como produto ou pedidos. Se você usar uma lista de objetos, o Flow buscará todos os objetos na lista. Isso pode ser um problema quando a lista contém muitos dados.
Outro problema comum é selecionar acidentalmente os dados errados. Por exemplo, para verificar dados do produto em um pedido, você pode ter selecionado order / publication / products / tags
em vez de order / line items / product / tags
. O primeiro resultado costuma estar incorreto, pois busca todos os produtos de uma publicação, enquanto a intenção é verificar apenas o produto presente no pedido. Selecionar uma lista muito extensa pode afetar o desempenho, além disso, escolher a lista incorreta pode levar sua automação a executar ações indesejadas.
Solução: selecione com atenção os dados necessários e evite usar listas quando não for necessário. Teste seus fluxos de trabalho para garantir que eles estejam fazendo o que você espera.
Metacampos
Buscar dados de metacampo ou metaobjeto de pessoa física não deve causar problemas de desempenho. No entanto, um problema comum é escolher a lista metafields
e executar um loop em todos os metacampos em um recurso. Se o campo value
contiver um grande volume de dados, como no caso do uso de objetos HTML, isso pode gerar um processamento excessivo e prejudicar o desempenho.
Solução: use o objeto metafield
(docs) em vez de metafields
.
Uso excessivo de ações "Get data" ("Coletar dados")
Os fluxos de trabalho que usam uma ação Get data ("Coletar dados"), como Get order data ("Coletar dados do pedido") são projetados para retornar no máximo 100 objetos por fluxo de trabalho das ações Get data. Exceder 100 objetos pode prejudicar o desempenho.
Solução: execute o fluxo de trabalho com mais frequência para que sua consulta não precise retornar mais de 100 resultados. Reutilize a mesma ação Get data ("Coletar dados") em vez de fazer consultas repetidas.
Nenhum filtro de consulta nas ações Obter dados
Ações Get data ("Coletar dados") chamam a API da Shopify. Se nenhuma consulta estiver presente, a API retornará todos os recursos ou nenhum. Isso pode prejudicar o desempenho, mas também pode fazer com que ações erradas sejam tomadas em sua loja, se você usar os dados retornados posteriormente no fluxo de trabalho.
Solução: sempre inclua filtros de consulta em suas ações Get data ("Coletar dados") .
Filtros de consulta incorretos em ações "Get data" ("Coletar dados")
As consultas Coletar dados oferecem suporte a um conjunto limitado de filtros de consulta, uma sintaxe específica e um conjunto específico de valores que podem ser usados em filtros. Inserir o filtro, valor de filtro ou sintaxe errados pode fazer com que toda a consulta seja ignorada, o que pode causar problemas semelhantes a quando nenhum filtro de consulta está presente.
Solução: use a documentação fornecida pela ação no Flow para encontrar a lista de filtros de consulta disponíveis. Sempre teste seus filtros de consulta para garantir que eles retornem os dados esperados. Você pode usar uma ação Log Output ("Saída de registro") no Flow (para ver os dados retornados) ou pode chamar a API Shopify Admin diretamente (por meio de um cliente API como o Postman ou por meio do app GraphiQL).
Soluções adicionais para problemas comuns de desempenho
Use etapas de espera para atrasar a busca de dados
As etapas de espera permitem pausar um fluxo de trabalho por um período especificado, mas elas também podem ser usadas para otimizar seus fluxos de trabalho. Cada etapa de espera divide efetivamente a execução do seu fluxo de trabalho em blocos separados. Quando o fluxo de trabalho é executado, ele busca automaticamente os dados necessários até a primeira etapa de espera (e busca-os novamente após a etapa de espera para o restante do fluxo de trabalho). Se um fluxo de trabalho utiliza um ativador de alto volume e busca grandes quantidades de dados, mas executa ações apenas ocasionalmente, você pode mover a lógica complexa e o processamento de dados para após um estado de espera, aguardando a etapa de emparelhamento. Por exemplo:
- Acionador: variante do produto volume de estoque alterado
- Condição: verifica se o produto está em uma coleção
- Se verdadeiro, Ação: aguarde 2 segundos
- Ação: envie um e-mail ao cliente (com muitos dados)
Neste exemplo, os dados necessários para a etapa 4 são consultados somente após a conclusão da etapa de espera. Se o estado for geralmente falso, isso significa que o fluxo de trabalho será executado de forma mais rápida e eficiente.
O que não otimizar
Usando os mesmos dados em múltiplas ações
Quando você usa o mesmo campo em várias etapas, o Flow analisa o uso desses campos e busca esses dados apenas uma vez. Isso significa que você pode usar os dados quantas vezes quiser sem se preocupar com o desempenho.