Zrobiłem w raisach interface do obsługi pewnych urządzeń sieciowych. W tle latają rake tasky, które generalnie robią coś w stylu:
Host.each do |h|
pobierz/ustaw dane dla hosta h po snmp
odczytaj z bazy/zapisz do bazy
end
Liczba hostów z których będę docelowo odczytywał dane będzie około 20, więc w zasadzie nie ma sensu odczytywać tych danych sekwencyjnie. Można by to rozbić na 20 wątków, które sobie będą działać równolegle.
Masz dwa wyjścia, albo po prostu użyć klasy Thread albo skorzystać z tego że Rake ma wbudowaną obsługę wielowątkowego wykonywania jak to zrobić pokazuje tutorial podany w dokumentacji Rake’a (zawsze mimo wszystko warto zajrzeć do dokumentacji narzędzia które używasz ) http://devblog.avdi.org/2014/04/29/rake-part-7-multitask/