web-dev-qa-db-ja.com

フォームキャッシュを自動的にクリアする方法は?

私はDrupal 7サイトに取り組んでいます。cache_formテーブルをチェックすると、毎日4 GBに達するため、手動でtruncatecache_formを実行する必要がありますテーブル。cache_formテーブルを1日に4回自動的にクリアする方法はありますか?

4
drupal

Cache_formを自動的にクリアする方法はいくつかあります。

optimizedb モジュールを使用

急成長しているテーブルcache_formには、よく知られている問題があります。このテーブルにはDrupalフォームキャッシュが格納され、すべてのキャッシュをフラッシュしたりcronを実行したりしてもクリアされません。また、アクティブな削除/挿入操作でのInnoDBテーブルの断片化の問題に悩まされる可能性があります。このモジュールこの問題を解決する機能を提供し、メンテナンスデータベースの追加ツールを提供します。

モジュールOptimizeDBは次のような機能を提供します。

Ability to clean **cache_from** in administrative page or do it by cron.
Ability to optimize all database’s tables and display its sizes.
Configuration of notification about necessity to perform maintenance tasks.
Perform check and repair operation with tables.
Prevent crashing tables when perform all maintained actions.

Drushアクセスがある場合安全 cache_form Clear module

限られた数のアイテムをcache_formテーブルから安全に削除します。

このモジュールは、テーブルを適切なサイズに維持しながら、高頻度で実行できるdrushコマンドdrush safe-cache-form-clearを提供します。 cache_formテーブルにはデータベースキャッシュバックエンドを使用する必要があります。

Drupalのコアcronは、極端に大きくなるとcache_formテーブルをクリアするときに問題が発生する可能性があります。このモジュールは、1回の実行でキャッシュから期限切れになるアイテムの数を制限し、毎回管理可能なチャンクを処理することで、この問題を回避します。

$ conf ['safe_cache_form_clear_limit']永続変数を設定することにより、1回の実行で削除されるアイテムの数を構成できます。

Drupalキャッシュの使用 Cleaner モジュールを自動的にクリアします(cache_formテーブルはクリアしません)。

Cleanerモジュールを使用すると、管理者はキャッシュ、ウォッチドッグ、および古いセッションをクリアするスケジュールを設定できます。

そして別の解決策は、モジュールにカスタムルートを作成することです他の人が予測できないもの(一部のハッシュURL)、コールバック関数で 'cache_form'テーブルを切り捨てます(または同等のDrupal)次に、サーバーまたはCpanelで crontab を作成し、定期的にコードを実行するようにスケジュールします。

3
Yusef