Need advice: threads or Typhoeus?

Hi guys,

I need my app to make a few hundreds requests to external web services
as quickly as possible. The web services are fairly fast, but still:
if I do the requests one after the other, it is too slow.
My understanding is I have two options:
a- Threads.
b- Typhoeus

Typhoeus seems great. Yet, the web services are all quite different
(some are SOAP, some REST…) and therefore wrapped into interfaces. I
might be able to implement Typhoeus but it means a lot of changes.
I have read that threads in Rails can be challenging to implement
especially when dealing with the DB. Yet, this part of my code doesn’t
do anything with ActiveRecord. Are threads generally “OK” if no
connection to the DB is involved?

Thanks a lot for your recommendations.

Pierre

Hello there Pierre,

Threads are not really threads in ruby, so forget about threads.

Instead use a background process for that. You can accomplish that using
some gem for creating background processes.
Delayed Job may be a solution for you.

[]'s
Rodrigo D.

Thanks Rodrigo.

The thing is, my main challenge here is speed: I have to wait for the
answers to the requests to be able “continue”. Therefore I am not sure
about background processes (or delayed job): are they going to make
the requests faster? Will they be able to run concurrently?

Thanks,
Pierre

Pierre,

If you need speed, you can spawn multiple processes at the same time.
That
will increase your throughput. Logically that depends on how powerful
your
machine is.

You can check railscasts.com for background processing casts.

[]'s
Rodrigo D.