ACSD-50858: desempenho aprimorado para carregar o conteúdo dos banners
O patch ACSD-50858 corrige um problema de desempenho de banner na página de carrinho/check-out: excesso de consultas ao BD e maior tempo de carregamento da página. Este patch está disponível quando o Quality Patches Tool (QPT) 1.1.31 está instalado. A ID do patch é ACSD-50858. Observe que o problema está programado para ser corrigido no Adobe Commerce 2.4.7.
Produtos e versões afetados
O patch foi criado para a versão do Adobe Commerce:
- Adobe Commerce (todos os métodos de implantação) 2.4.5-p1
Compatível com as versões do Adobe Commerce:
- Adobe Commerce (todos os métodos de implantação) 2.4.4 - 2.4.6
magento/quality-patches
para a versão mais recente e verifique a compatibilidade na Quality Patches Tool: página Procurar patches. Use a ID do patch como palavra-chave de pesquisa para localizar o patch.Problema
O desempenho do banner é afetado na página do carrinho/check-out devido a excesso de consultas ao BD e tempo de carregamento da página aumentado.
Isso foi corrigido refatorando a maneira como o conteúdo dos banners é carregado, o que reduziu o número de consultas ao DB em 99,99% e o tempo de carregamento da página em ~99%.
Etapas a serem reproduzidas:
-
Faça logon no Admin e crie um produto simples.
-
Crie um cliente, seja do Administrador ou do front-end, e adicione um endereço de entrega para ele.
-
Mova banners.php para a pasta
magento_root/pub/
. -
Gerar banners usando o comando
php pub/banners.php
. Ele gerará 10 mil banners simples e mil banners com regras de vendas. -
Faça logon no cliente criado anteriormente no front-end.
-
Adicione o produto criado anteriormente ao carrinho.
-
Vá para a página de check-out (check-out/carrinho).
-
Monitorar o tempo de carregamento da solicitação
banner/ajax/load
:-
Sem
bin/magento dev:query-log:enable
-
Com
bin/magento dev:query-log:enable
code language-none grep 'magento_banner_content' var/debug/db.log | wc -l
-
Resultados esperados:
Diminuição no número de consultas ao BD para magento_banner_content
e tempo de carregamento da página de carrinho/check-out.
Resultados reais:
Aumento no número de consultas ao BD para magento_banner_content
e tempo de carregamento da página de carrinho/check-out.
Aplicar o patch
Para aplicar patches individuais, use os links a seguir, dependendo do método de implantação:
- Adobe Commerce ou Magento Open Source no local: Quality Patches Tool > Uso no guia Quality Patches Tool.
- Adobe Commerce na infraestrutura em nuvem: Atualizações e patches > Aplicar patches no guia do Commerce na infraestrutura em nuvem.
Informações adicionais
conteúdo de banners.php:
\Banner::class);
$banner->setIsEnabled(
\Magento\Banner\Model\Banner::STATUS_ENABLED
)->setName(
'Test Dynamic Block '.$i
)->setTypes(
''
)->setStoreContents(
[0 => 'Dynamic Block Content '.$i]
)->save();
}
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
/** @var \Magento\SalesRule\Model\Rule $salesRule */
$salesRule = $objectManager->create(\Magento\SalesRule\Model\Rule::class);
$salesRule->setData(
[
'name' => '50% Off ',
'is_active' => 1,
'customer_group_ids' => [\Magento\Customer\Model\GroupManagement::NOT_LOGGED_IN_ID],
'coupon_type' => \Magento\SalesRule\Model\Rule::COUPON_TYPE_NO_COUPON,
'conditions' => [
[
'type' => \Magento\SalesRule\Model\Rule\Condition\Address::class,
'attribute' => 'base_subtotal',
'operator' => '>',
'value' => 0
]
],
'simple_action' => 'by_percent',
'discount_amount' => 50,
'discount_step' => 0,
'stop_rules_processing' => 1,
'website_ids' => [
1
]
]
);
$salesRule->save();
for ($i = 0; $i < 1000; $i++) {
$banner = $objectManager->create(\Magento\Banner\Model\Banner::class);
$banner->setData(
[
'name' => 'Get 50% Off ',
'is_enabled' => \Magento\Banner\Model\Banner::STATUS_ENABLED,
'types' => [], /*Any Banner Type*/
'store_contents' => ['<img src="http://example.com/banner_40_percent_off.png" />'],
'banner_sales_rules' => [$salesRule->getId()],
]
);
$banner->save();
}
Leitura relacionada
Para saber mais sobre Quality Patches Tool, consulte:
- Quality Patches Tool lançamento: uma nova ferramenta para autoatender patches de qualidade na base de dados de conhecimento de suporte.
- Verifique se há patch disponível para o problema do Adobe Commerce usando o Quality Patches Tool no guia Quality Patches Tool.
Para obter informações sobre outros patches disponíveis no QPT, consulte Quality Patches Tool: Pesquisar patches no guia Quality Patches Tool.