wSearch::cronjob

Erstellung des Suchindexes Mithilfe eines Cronjobs

Funktionsaufruf

String cronjob(Array $parameters)

Parameter

parameters
frequency
Zeitpunkt zu dem die Suchindexierung gestartet werden soll (daily|now|export|"00"->"23")

Beispiel: Ausführen der Suchindexierung mithilfe eines cronjobs

Quelltext

<?php

//Folgende Anweisung wurde aufgrund des direkten Aufrufes über das Perl-Script auskommentiert.
//$_SERVER[DOCUMENT_ROOT] = "/homepages/IHRPFAD";
// ggf. HTTP_HOST setzen, falls über Konsole/Cron nicht verfügbar:
//$_SERVER['HTTP_HOST'] = "IHRE-Domain.TLD"; // z.B. "www.domain.dd"

require_once($_SERVER['DOCUMENT_ROOT']."/weblication/grid.php");

$pathSearch = "/de/weblication/project/searchs/default.wSearchBot.php";

//Objekt erstellen
$wSearch = new wSearch($pathSearch);
$options = array();
$options['frequency'] = 'daily';
print
$wSearch->cronjob($options);

?>

Parameter

  • frequency-> Zeitpunkt zu dem die Suchindexierung gestartet werden soll
    • daily -> Täglich um Mitternacht
    • now -> sobald ein Index erstellt wurde, wird erneut gestartet (nur zum Testen empfohlen)
    • "00" - "23" ->Zeitangabe zu welcher Stunde gestartet werden soll

Tipps

Aufgrund evtl. Probleme mit Umgebungsvariablen (DocRoot, etc.) beim direkten Ansprechen des PHP-Scriptes über den Cronjob, empfehlen wir ein Perl Script über den cronjob aufzurufen, das eine GET-Anfrage an das auszuführende PHP-Script stellt.
Bitte beachten Sie, dass die Shebang (Pfad zum Perlinterpreter, meist #!/usr/bin/perl) auf Ihrem Server evtl. vom Beispiel abweichen kann.

Perl Script (cron.cgi)

#!/usr/bin/perl
print "content-type: text/html\n\n";
use CGI::Carp qw(fatalsToBrowser);
use LWP::Simple;
$inhalt = get('http://DOMAIN/searchindex_cronscript.php');
print $inhalt; 

Hinweis
Beim Einsatz von Framework-Funktionen in eigenen Skripten beachten Sie bitte den Artikel "So verwenden Sie das PHP-Framework in eigenen Scripten".
Wenn Sie eine Funktion innerhalb einer Weblication® Seite z.B. über das PHP-Quelltext Element oder in einem XSL-Template über wsl:php einbinden, muss das Framework über die grid.php nicht mehr referenziert werden.