開発用コンピュータで検索サービスを実行しているため、インデクサー(.exeファイル)を実行して1〜5分ごとにサービスを再起動する必要がありますスフィンクス検索)。 Windowsでこれを行うにはどうすればいいですか?私の考えは、ウィンドウタスクスケジューラを介してバッチファイルを実行することですが、あなたは何をしていますか?数分ごとに検索エンジンのインデックスを再作成する
2
A
答えて
1
Windowsの場合はWindows Task Scheduler
を使用してください。 Linuxでは、cron
を使用してください。
それ以外の場合は、指定した間隔で無限ループでスリープし、間隔が終了すると再インデックスするデーモンプロセスを作成できます。それから再び、それは眠り、プロセスを続けるでしょう。 (Perlで)例えば
:私は、タスクスケジューラに建てられたの代替として極めて有用pycronを見つけ
#!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
}
1
。あなたがUNIXのcronスタイルに慣れているなら、あなたはbeginnigからそれを愛するでしょう。編集可能な設定ファイルとログファイル、さらに多くのオプションがあります。
それについての記事:http://www.bigbluehost.com/article4.html
Pycronのウェブサイト:http://www.kalab.com/freeware/pycron/pycron.htm
adamcroft:ちょうど好奇心のうち 、それは窓の下スフィンクス検索デーモンを再起動する必要が本当にありますか?私たちはLinuxサーバ上でsphinxを使用しています。何も再起動する必要はありません。インデクサーは新しい索引ファイルを自動的に生成し、古い索引ファイルを一度終了して回転させます。 – Hans
はい、何らかの理由でsearchdを再起動しないと非常に奇妙なエラーが発生します。私は突然、まだ到達していないドキュメントIDで結果を得るようになります。 (例えば、PK上の自動インクリメントは70で、200のdocidを持つ検索結果が得られます)。任意のヒント? –