notify a web-service: sending non-blocking http requests

D

d c

hi -

i want to notify a webservice of something, but not wait for the
response. whats the best way to do this?

is there a way to use a GET call to just send a request and then continue?

i could use the timeout library i guess with a timeout of 0 ? which i
guess spawns a thread...

or use
system("curl #{url}")

but this seems like a lot of overhead.

is there a UDP package for ruby?
i guess another hack might be to return a page to the user with a GIF
image with a URL of the service i want to request,
then it will take no resources from my system...
<img width=1 height=1 src='http://server/notify/event" />

tx

/dc
 
C

Curt Sampson

i want to notify a webservice of something, but not wait for the
response. whats the best way to do this?

HTTP doesn't let you do this reliably. The best thing to do is change
the service so that it returns immediately to acknowledge receipt of the
request. Then just use standard Net::HTTP.
i could use the timeout library i guess with a timeout of 0 ? which i
guess spawns a thread...

Or just spawn a thread and then have the thread wait for the response.
Be careful, however; Ruby threads are not asynchronous when you're
waiting for IO, unless you're careful to wait in select().
or use
system("curl #{url}")

That will wait for the response.
is there a UDP package for ruby?

Yes, but you can't do HTTP over UDP; you're misunderstanding the protocol.

cjs
 
F

Francis Cianfrocca

[Note: parts of this message were removed to make it a legal post.]

hi -

i want to notify a webservice of something, but not wait for the
response. whats the best way to do this?

is there a way to use a GET call to just send a request and then continue?


If you're able to use the Ruby/EventMachine library, it solves this problem
easily. Whether you can use it depends on the structure of your program.

The HTTP client inside of EM returns a "Deferrable" object, which
synchronously notifies your program when the HTTP request completes.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,768
Messages
2,569,575
Members
45,053
Latest member
billing-software

Latest Threads

Top