2009-07-05 8 views
2

Ich führe einen Suchdienst auf meinem Entwicklungscomputer aus, und ich muss einen Indexer (.exe-Datei) ausführen und einen Dienst alle 1-5 Minuten neu starten (ich benutze Sphinxsuche). Wie würde ich das in Windows machen? Mein Gedanke ist, eine Batch-Datei über Windows-Taskplaner zu starten, aber was machst du?Indexierung einer Suchmaschine alle paar Minuten

+0

adamcroft: Nur aus Neugier, ist es wirklich notwendig, die Sphinx Suche Daemon unter Windows neu zu starten? Wir verwenden sphinx auf Linux-Servern und es erfordert keinen Neustart von irgendetwas. Der Indexer generiert automatisch die neuen Indexdateien und rotiert sie nach Fertigstellung mit den alten. – Hans

+0

Ja, aus irgendeinem Grund erlebe ich einen sehr seltsamen Fehler, wenn ich Searchd nicht neu starte. Ich bekomme plötzlich Ergebnisse mit Doc-IDs, die noch nicht erreicht wurden. (Zum Beispiel - das Autoinkrement auf dem PK ist bei 70, und ich bekomme Suchergebnisse mit einem Docid von 200). Irgendwelche Tipps? –

Antwort

1

Verwenden Sie in Windows Windows Task Scheduler. Verwenden Sie in Linux cron.

Andernfalls könnten Sie einen Daemon-Prozess schreiben, der für ein spezifiziertes Intervall in einer Endlosschleife ruht und nach dem Intervall erneut indiziert. Dann würde es wieder schlafen und den Prozess fortsetzen.

Zum Beispiel (in Perl):

#!perl 

use strict; 
use warnings; 

use Proc::Daemon; 

Proc::Daemon::Init; 

my $minutes = 5; 
my $seconds = 60 * $minutes; 

while (1) { 
    sleep($seconds); 
    # Do necessary work 
}