Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   Ruby (http://www.velocityreviews.com/forums/f66-ruby.html)
-   -   notify a web-service: sending non-blocking http requests (http://www.velocityreviews.com/forums/t846854-notify-a-web-service-sending-non-blocking-http-requests.html)

d c 12-24-2007 12:47 PM

notify a web-service: sending non-blocking http requests
 
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


Curt Sampson 12-24-2007 01:33 PM

Re: notify a web-service: sending non-blocking http requests
 
On 2007-12-24 21:47 +0900 (Mon), d c wrote:

> 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
--
Curt Sampson <cjs@starling-software.com> +81 90 7737 2974
Mobile sites and software consulting: http://www.starling-software.com


Francis Cianfrocca 12-24-2007 05:20 PM

Re: notify a web-service: sending non-blocking http requests
 
[Note: parts of this message were removed to make it a legal post.]

On Dec 24, 2007 7:47 AM, d c <lister@pikkle.com> wrote:

> 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.



All times are GMT. The time now is 04:39 PM.

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.