Parallele HTTP-Anfragen in Ruby

7

Ich habe eine Reihe von URLs, und ich möchte jeden öffnen und ein bestimmtes Tag holen.
Aber ich möchte das parallel machen.

Hier ist der Pseudocode für was ich machen möchte:

%Vor%

Wenn das auf eine nette und sichere Weise gemacht werden könnte, wäre das großartig.
Ich könnte Thread verwenden, aber es sieht nicht aus wie Arrays in Ruby threadsicher sind.

    
Nicklas A. 08.01.2012, 15:29
quelle

3 Antworten

26

Sie können Thread-Sicherheit erreichen, indem Sie eine Mutex :

verwenden %Vor%

Es könnte jedoch kontraproduktiv sein, für jede URL einen neuen Thread zu verwenden. Daher ist die Anzahl der Threads möglicherweise leistungsfähiger:

%Vor%     
Niklas B. 08.01.2012, 15:47
quelle
8

Die Typhoeus / Hydra Edelsteinkombination wurde entwickelt, um das sehr leicht zu machen. Es ist sehr praktisch und leistungsstark.

    
the Tin Man 09.01.2012 01:26
quelle
2

Dank Ruby's GIL sollte das sicher sein, basierend auf meiner Lektüre von Ссылка und weitere Links.

    
ben 08.01.2012 15:58
quelle