Mailinglisten-Archive |
Dietmar Winhold wrote:
> ich bin dabei eine Anzeigenboerse zu programmieren. Es stellt sich nun die
> Frage, wie man Anzeigen nach einem gewissen Zeitraum (z.B. nach 4 Wochen)
> automatisch löschen kann, bzw. den Status zur Veröffentlichung auf '0'
> setzen kann?
Falls die Anzahl der Anfragen nicht zu hoch ist, ist es
vertretbar, daß bei jedem Neueintrag eine garbage collection
aufgerufen wird. Diese muß nicht bei jedem Aufruf arbeiten,
sondern zufalls- oder zeitgesteuert nur bei jedem n-ten Aufruf.
function GarbageCollection( $probability = 30) {
srand((double)microtime()*1000000
if ($probability != rand(0, $probability))
return;
$query = sprintf("delete from meinetabelle where datum<%s " ...
}
Für kleine Datenmengen wurde jedoch bereits ein eleganterer
Vorschlag gemacht. Speichere ein Ablaufdatum und starte die
garbage collection von Hand - egal ob per Skript, per cron oder
auf der Kommandozeile alle x Monate.
Ulf
--
Ulf Wendel
NetUSE Kommunikationstechnologie GmbH
Siemenswall, D-24107 Kiel, Germany
Fon: +49 431 386435 00 -- Fax: +49 431 386435 99
php::bar PHP Wiki - Listenarchive