ACSD-50858: prestazioni migliorate per il caricamento del contenuto dei banner
La patch ACSD-50858 risolve un problema di prestazioni del banner nella pagina carrello/pagamento: query database eccessive e aumento del tempo di caricamento della pagina. Questa patch è disponibile quando è installato Quality Patches Tool (QPT) 1.1.31. L’ID della patch è ACSD-50858. Il problema è pianificato per la risoluzione in Adobe Commerce 2.4.7.
Prodotti e versioni interessati
La patch è stata creata per la versione di Adobe Commerce:
- Adobe Commerce (tutti i metodi di implementazione) 2.4.5-p1
Compatibile con le versioni di Adobe Commerce:
- Adobe Commerce (tutti i metodi di implementazione) 2.4.4 - 2.4.6
magento/quality-patches
alla versione più recente e verificare la compatibilità nella pagina Quality Patches Tool: Cerca patch. Utilizza l’ID patch come parola chiave di ricerca per individuare la patch.Problema
Le prestazioni del banner sono influenzate nella pagina carrello/pagamento a causa di query sul database eccessive e aumento del tempo di caricamento delle pagine.
Questo problema è stato risolto refactoring del modo in cui vengono caricati i contenuti dei banner, che ha ridotto il numero di query DB del 99,99% e il tempo di caricamento della pagina di circa il 99%.
Passaggi da riprodurre:
-
Accedi ad Admin e crea un prodotto semplice.
-
Crea un cliente, dall’amministratore o dal front-end, e aggiungi un indirizzo di spedizione.
-
Spostare banners.php nella cartella
magento_root/pub/
. -
Generare i banner utilizzando il comando
php pub/banners.php
. Verranno generati 10.000 banner semplici e 1.000 banner con regole di vendita. -
Accedi al cliente creato in precedenza sul front-end.
-
Aggiungi al carrello il prodotto creato in precedenza.
-
Vai alla pagina di pagamento (pagamento/carrello).
-
Monitorare il tempo di caricamento della richiesta
banner/ajax/load
:-
Senza
bin/magento dev:query-log:enable
-
Con
bin/magento dev:query-log:enable
code language-none grep 'magento_banner_content' var/debug/db.log | wc -l
-
Risultati previsti:
Diminuzione del numero di query DB per magento_banner_content
e del tempo di caricamento del carrello/pagina di pagamento.
Risultati effettivi:
Aumento del numero di query DB per magento_banner_content
e del tempo di caricamento del carrello/pagina di pagamento.
Applicare la patch
Per applicare singole patch, utilizzare i collegamenti seguenti, a seconda del metodo di distribuzione utilizzato:
- Adobe Commerce o Magento Open Source locale: Quality Patches Tool > Utilizzo nella guida di Quality Patches Tool.
- Adobe Commerce su infrastruttura cloud: Aggiornamenti e patch > Applica patch nella guida Commerce su infrastruttura cloud.
Informazioni aggiuntive
contenuto 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();
}
Lettura correlata
Per ulteriori informazioni su Quality Patches Tool, vedere:
- Quality Patches Tool rilasciato: nuovo strumento per la gestione automatica delle patch di qualità nella Knowledge Base di supporto.
- Verifica se la patch è disponibile per il problema di Adobe Commerce utilizzando Quality Patches Tool nella guida di Quality Patches Tool.
Per informazioni sulle altre patch disponibili in QPT, fare riferimento a Quality Patches Tool: Cercare le patch nella guida di Quality Patches Tool.