Der Status der laufenden Worker wird noch nicht in die Suche mit einbezogen.
Wir haben auf gut Glück auf unseren Servern 100 Worker Prozesse am laufen. Eine Suche mit 20 Suchmaschinen würde 20 davon in Beschlag nehmen. Das bedeutet also, dass parallel maximal 5 solcher Prozesse laufen dürften, damit es nicht zu Verzögerungen bzw sogar fehlenden Ergebnissen kommen würde.
Idee wäre folgende Logik bevor eine Suche gestartet wird:
- Aktuellen Queue Status überprüfen
- Besorgen der aktuellen Anzahl laufender Worker
- Besorgen der aktuellen Länge der Warteschlange
- Anzahl der benötigten Jobs Zwischenspeichern.
- Berechne aus diesen Daten, ob die Suche überhaupt sofort ausgeführt werden kann.
- Schreibe diese Werte in eine Log-Datei, damit wir einen Monitor entwickeln können.
- Solange der Job nicht ausgeführt werden kann
- Update für die aktuelle Länge der Warteschlange
- Sleep