Irgendwelche Ideen, warum Thinking Sphinx Rake Aufgaben nicht ausgeführt werden?

8

Ich finde, dass die Denksphinx manchmal Fehler macht, wenn ich versuche, ihre Rechenaufgaben auszuführen. Manchmal funktionieren die Aufgaben gut und manchmal erhalte ich Fehler wie den folgenden.

Ich führe die Aufgaben als normaler Benutzer aus, nicht als root. Nicht mit Sudo.

Im folgenden Beispiel wird searchd weiterhin ausgeführt, nachdem die Rake-Task fehlgeschlagen ist.

Ich habe auch ähnliche Fehler mit ts:rebuild gesehen.

Hat jemand anderes das gesehen?

Ich benutze Sphinx 0.9.9-release (r2117)

Ich benutze Thinking Sphinx 1.4.4 anstelle der neuesten Version, weil ich auf Rails 2.3.11 bin.

%Vor%     
Ethan 27.04.2011, 20:02
quelle

5 Antworten

11

Ich glaube, dass dieser Fehler verursacht wird, wenn ein Suchdämon bereits ausgeführt wird.

Versuchen Sie

%Vor%

Wenn Sie so etwas bekommen ...

%Vor%

töte dann den Suchbegriff

%Vor%

process_id wäre in meinem Fall 73470

Dann versuchen Sie Rake ts: erneut erstellen.

    
yekta 03.05.2011, 16:00
quelle
6

Ich habe den Befehl 'ps | grep searchd 'um die Prozess ID zu bekommen, aber ich habe es nicht verstanden. Dann habe ich den Befehl 'pgrep searchd' versucht, es gibt mir die Prozess-ID. Ich habe diesen Prozess beendet und den Befehl 'Rake ts: rebuild' ausgeführt. Es funktionierte.

Ich habe über die gesamte Erfahrung blogged hier (Disclaimer: I bin der Autor).

    
Ritesh Kumar 24.05.2011 14:24
quelle
3

In thinking_sphinx 1.4.4 gibt es ein 5 Sekunden Timeout auf rake ts:stop

Wenn rake ts:stop nahe oder länger als 5 Sekunden dauert, wird Ruby eine Ausnahme auslösen.

Ich benutze in der Zwischenzeit die thinking_sphinx 1.3.18. (Es gibt keine Zeitüberschreitung bei 1.3.18).

Ich habe auch einen Patch an das Github-Repository gesendet und das Timeout wird mit einem sphinx.yml konfigurierbar sein. Konfigurationsvariable stop_timeout .

HINWEIS: rake ts:rebuild == rake ts:stop; rake ts:index; rake ts:start

    
Justin Tanner 25.06.2011 22:04
quelle
0

Ich denke nach der Bereitstellung durch capistrano hast du rake thinking_sphinx:configure
nicht ausgeführt es würde Sphinx-Konfigurationsdatei in config/production.sphinx.conf

erzeugen

Versuchen Sie, pidfile zu config/sphinx.yml

hinzuzufügen %Vor%

es wird sicherstellen, dass pid von searchd to kill

gefunden wird

und folgenden Code zu config/deploy.rb

hinzugefügt %Vor%

um die Sphinx-Konfigurationsdatei in jedem Release-Ordner zu erstellen

    
MarsZ Chen 25.01.2013 20:57
quelle
0

Das Problem

Dieses Problem tritt auf, wenn Ihr searchd abgestürzt ist oder Sie es manuell beendet haben. Unter Windows wird Ihr searchd.<environment>.pid nicht überschrieben, so dass immer noch die alte PID gespeichert wird und ThinkingSphinx die wirklich laufenden Prozesse in Ihrem Taskmanager nicht überprüft. Also werden alle diese Befehle ( rake ts:restart, rake ts:rebuild, ... ) nicht funktionieren, Rake wird immer abgebrochen und du bekommst den Fehler rake aborted, ... searchd already running

Die Lösung

Löschen Sie Ihre path-to/your-app/log/searchd.<environment>.pid .

<environment> kann development oder production sein, abhängig von Ihrer aktuellen Phase.

Ich hoffe, diese Antwort wird dem Googler helfen.

    
Patrick H. 21.08.2013 10:42
quelle