2016-05-06 2 views
0

Größtes Problem, das ich mit Selen habe, ist die lange Wiederöffnungszeit des Browsers (damit es alle paar Minuten abkratzt). Ich benutze auch Proxies und mehrere Browser mit Python-Threading - Alle starten/stoppen alle paar Minuten (wenn neue Job kommt)Python/Sellerie/Selen kontinuierliche Aufgabe (Browser erneut öffnen)

0 Threading bedeutet auch nur 1 CPU verwendet wird und die Leistung leidet.

Ich habe darüber nachgedacht, Sellerie (Out-of-Box-Multi-Core-Unterstützung) zu verwenden und Arbeiter (verschiedene Proxy/Browser) unbegrenzt laufen lassen (While-Schleife) mit offenen Instanzen von Selen-Browsern warten, um genau zu werden URLs zu kratzen - Feed über etwas wie redis.

Ist es eine gute Idee, kontinuierliche Aufgaben wie diese mit Sellerie zu betreiben? Gibt es einen besseren Weg, es zu tun?

Antwort

1

Es ist nie eine gute Idee, Instanzen von Selen unbegrenzt offen zu halten, Best Practice ist es, mit jeder Aufgabe neu zu öffnen.

so für Sie Frage, meiner Meinung nach ist es keine gute Idee.

Lassen Sie mich Ihnen stattdessen eine andere Architektur anbieten.

Verwendung Docker Ihre Selen Maschinen laufen,
grundsätzlich selenium-grid erstellen (first in Google führen link) Docker mit

einmal alles richtig eingerichtet die Aufgabe einfach, alle mit ist, wird sich Multiprozessing an Ihre Selen-Hub senden Die Jobs parallel,
und sie werden gleichzeitig auf so viele Container laufen, wie Sie benötigen.
Sobald der Job erledigt ist, können Sie die Container zerstören und mit dem nächsten Zyklus neu starten.

Mit docker können Sie auch sehr einfach skalieren Sie Betrieb

Verwandte Themen