タグ付けされた質問 「save」

1
大量のアクションでループの保存を回避する
CMSページの場合と同様のインライン編集アクションを含む独自のCRUDモジュールを作成しました。 すべてが正常に動作しますが、EcgM2標準で phpsnifferを実行すると、次の警告が表示されます。 ループで検出されたモデルLSDメソッドsave() どうすればこれを回避できますか? 注:上記のリンクされたコアファイルを「スニッフィング」すると、同じ警告が表示されます。 ここにexecute誰かがそれを必要とする場合の私の方法があります。しかし、それはCMSページコントローラーからのものと非常に似ています public function execute() { /** @var \Magento\Framework\Controller\Result\Json $resultJson */ $resultJson = $this->jsonFactory->create(); $error = false; $messages = []; $postItems = $this->getRequest()->getParam('items', []); if (!($this->getRequest()->getParam('isAjax') && count($postItems))) { return $resultJson->setData([ 'messages' => [__('Please correct the data sent.')], 'error' => true, ]); } foreach (array_keys($postItems) …

3
Magento Enterprise Slow Product Save(/ wおよび/ wo Solr統合)
問題: 製品の保存は過去12か月間で徐々に遅くなっています バックグラウンド: Magento Enterprise 1.14.1(この問題は1.13.0.2にも存在します) 〜15,000製品、〜700カテゴリ、2店舗 Solr 3.6 調査: 遅い製品の保存が問題になった後、遅いクエリログを調査したところ、同じクエリがポップアップ表示さ"UPDATE `catalogsearch_query` SET `is_processed`=0"れたことがわかりました。ローカルで同じクエリを実行すると、最大7〜10秒かかりました。 この遅いクエリの理由は、サイトが検索の負荷が高く、catalogsearch_queryテーブル内の400,000行を超える行がすべて0で更新されているためです。これは、MySQLテーブルに格納するのに大量のデータではありませんが、このような頻繁なイベントで更新する膨大な量。 プロセスのxdebugging後に問題をさらに悪化させるには、各製品の間にMagentoがMage_CatalogSearch_Model_Resource_Fulltext :: resetSearchResults()メソッドを5回ヒットし、Enterprise_CatalogSearch_Model_Observer :: processProductSaveDeleteEvent()を呼び出すcatalog_product_save_commit_afterイベントのバックを保存します。 したがって、5回* 3秒は、15秒が各製品の節約に追加されます。5回はやり過ぎに思われ、このオブザーバーによってトリガーされたプロセスの最後にresetSearchResults()が何度も呼び出されるのは見落としのようです。 さらに調査するとis_processed、Solr統合が実施されている場合、データベースのこのフィールドはほとんど使用されないようです。 誰かがこの問題に遭遇しましたか? どのような行動をとりましたか? 近づくための提案はありますか? 私の最初の考えは、プロセスを再構築して、その影響を完全に調査した後、catalogsearch_queryのクエリを削除することです。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.