Thumb Rule: Web sitenizin temizliği için Cron düzenli olarak çalıştırılmalıdır.
MPD'ye yaptığınız yorumda, cron'u kurup düzenli olarak çalıştırmanıza rağmen cache_form tablonuzun hızla büyüdüğünden bahsettiniz.
Bunun bir çözümü cronunuzu daha sık çalıştırmaktır. Her altı saatte bir mi yoksa daha az mı dersiniz? Bunu yapmayı göze alamıyorsanız, daha fazla okuyun.
Alternatif Çözüm:
mymodule_cron() {
cache_clear_all(NULL, 'cache_form');
}
Elysia Cron'u yükleyin ve şimdi modülünüzün cron işlevini ayrı olarak çalıştırabilirsiniz. Modülün altı saatte bir çalışması için Elysia cron frekansını koruyabilirsiniz. Böylece cache_form
masanız altı saatte bir budanır.
Bu budama işlemi sırasında 6 saatten daha eski olmayan kayıtlar silinmeyecektir. Bunun nedeni, tüm girişlerin silinmesi durumunda, girişlerin silinmesi sırasında gönderilen formların garip davranmasıdır.
Https://api.drupal.org/api/drupal/includes!form.inc/function/form_set_cache/7 adresindeki koda bakın.
function form_set_cache($form_build_id, $form, $form_state) {
// 6 hours cache life time for forms should be plenty.
$expire = 21600;
Yorum okudukça onlar bol olması gerektiğini ve sizin durumunuzda çok bol oluyor varsayalım. Bu nedenle, hile cache_form tablosunu daha sık temizlemek ve $ expire değerini daha düşük bir değere düşürmektir; cache_form girişlerini varsayılan 6 altı saatten daha sık temizlemek istiyorsanız, TTL değerini değiştirmeniz gerekir. cache_form girişleri.
Sen yükleyerek bunu yapabilir cacheboject ve sonra uygulanması hook_cacheobject_presave
sen TTL değiştirebilir, içinde 2 ya da 3 saat olabilir için.
mymodule_cacheobject_presave()($object, $cid, $bin) {
// Extend the expiry period for prototype forms used in ajax enabled forms.
$cache_ttl = 1 ; // Change it to any number of hours
if ($bin == 'cache_form') {
$object->expire = REQUEST_TIME + $cache_ttl * 3600;
}
}
Bu yaklaşımın bir dezavantajı, formların 2 saat içinde gönderilmemesi durumunda (ayarladığınız RTL değeri) form verileri kaybolabilir ve formun süresi dolmuş bazı sorunlar alabilirsiniz.