woocommerce ますます使用されているモジュールになりました 雑誌オンライン。 SEO、製品、在庫、清潔で直感的なコード、単純な管理インターフェイス、およびWooのために開発された数千のプラウの管理は、オンラインストアの開発を考えているときにチャンスに値する議論のほんの一部です。
他のCMSと同様に、どちらのWooも、他のWordPressプラグインとの異なる使用または相互作用シナリオで発生する可能性のあるオッズの例外ではありません。
リソースを備えたサーバー上 ハードウェア かなり寛大で、私はそれに気づきました データベースサービス (mysqld)ほぼ80を要求し始めます– RAMメモリの90%。 110エラーが定期的にどこから来るのかを単に理解していなかったので、かなり深刻な問題です。110:接続のタイミング)。
SQLプロセスのより慎重なチェックで、データベースには2つのかなりのボリュームテーブルがあることがわかりました。 wp_actionscheduler_actions そして wp_actionscheduler_logs。
mod通常 スケジュールされたアクション しかし WooCommerce Action Scheduler 実行後に自動的に削除する必要があります。これは常に発生するわけではなく、ステータスでwp_actionschedier_actionsでブロックされたままです。 失敗した、 キャンセル、 保留中 または 完了。
テーブルの上の画像 “wp_actionsscheduler” 彼らはしか持っていません 15 MB強。申し訳ありませんが、彼らが持っていたときにスクリーンショットをすることに触発されていませんでした1.2 GB。それでも、WooCommerceのプログラムされたアクションを含むテーブルには15 MBで十分です。
これらのテーブル “膨らんだ” そのため、結果です WP-Cronは入力を削除しません AUステータスをご覧ください “失敗した“、 “キャンセル” そして “完了“。通常、これらの入力はデータベースから自動的に削除する必要があります。
スケジュールされたアクションとその条件は、非常に簡単に、そして woocommerce →状態 →スケジュールされたアクション。
insattersを掃除する方法 “失敗した“、 “キャンセル” そして “完了” からwp_actionscheduler_actions そして wp_actionscheduler_logs
PhpMyAdminを介してデータベースにアクセスし、SQLでコマンドラインを実行します。
DELETE FROM `wp_actionscheduler_actions` WHERE `status` = 'canceled'
DELETE FROM `wp_actionscheduler_actions` WHERE `status` = 'complete'
DELETE FROM `wp_actionscheduler_actions` WHERE `status` = 'failed'
このテーブルがクリーニングされると、問題が解決したという意味ではありません。上で言ったように、主な原因は、WP-Chronサービスのさまざまな理由で非アクティブ化することです。したがって、ステータスを持つエントリ “ゾンビ” それらはもはや消去できません。
WoCommerceにオンラインストアがあり、プラグインを介してFacebookショップに接続されている場合は、非常に重要です。 “WooCommerceのFacebook“、WooCommerce製品をFacebook Shopsアカウントと自動的に同期します。そして、それは約15分です。これらのSQL入力は制御されていない場合、数十万行を取得できます “wc_facebook_regenerate_feed” で “wp_actionscheduler_actions“。
この間隔は、多数の注文がある店舗では問題ありません。Facebookショップの在庫を絶えず更新する必要があります。 Facebookからのこれらの同期と24時間ごとにストアを実行できると考える場合、以下のコードラインが役立ちます。
WordPress / WooCommerceテーマのfunctions.phpファイルを開きます。
add_filter( 'wc_facebook_feed_generation_interval', function(){ return HOUR_IN_SECONDS * 24; } );
次に、自動クリーニングのために1週間の間隔を設定できます。
add_filter( 'action_scheduler_retention_period', 'wpb_action_scheduler_purge' );
function wpb_action_scheduler_purge() {
return WEEK_IN_SECONDS;
}
これらの変更を保存すると、巨大なテーブルに問題はありません “wp_actionscheduler_actions”。
@ステルス
助けてくれてありがとう。あなたは私の一日を救って買い物をします。私は最初に私のウェブショップのクラッシュの後にこれを発見しました。多くのプラグインがそのテーブルに出力を捨て始めています、そしてそれは埋めます… 9.2GBのテーブルをwoopでは、ホストは他の方法で細かいPPP時間をあきらめました。今、私は素晴らしいコードでトリミングしています!
このテーブルのロープを落とすことに関する質問 “wpb_action_scheduler_purge” それはDBのデフォルトですか、それとも私がそうすべきですか。それを私の何かに変更します(デフォルトは私のdbではありません 'wp_’ )またはそれは機能ですか?
助けてくれてありがとう、とても素敵な記事
挨拶
ネッツ