I''m happy to announce the release of beanstalkd 0.5.
This is the very first public release. In the future I''ll confine
release announcements to the beanstalk mailing list.
WHAT IS BEANSTALKD?
-------------------
Beanstalkd is a fast, distributed, in-memory workqueue service. Its
interface is generic, but is intended for use in reducing the latency
of page views in high-volume web applications by running most
time-consuming tasks asynchronously.
Philotic, Inc. developed beanstalkd to improve the response time for
the Causes on Facebook (http://apps.facebook.com/causes/) application
(with over 9.5 million users). Beanstalkd drastically decreased the
average response time for the most common pages to a tiny fraction of
the original and dramatically improved the user experience.
Stay tuned for a Rails plugin called Async Observer that will make
using beanstalk in your Rails project a snap!
OUR FEW URLS
------------
Download the 0.5 tarball and learn all about beanstalk:
http://xph.us/software/beanstalkd/
Talk about beanstalk development or use at:
http://groups.google.com/group/beanstalk-talk
HOW TO RUN IT
-------------
First, run beanstalkd on two or three machines. There is no
configuration file and only a handful of command-line options.
$ ./beanstalkd -d -l 10.0.1.5 -p 11300
This starts up beanstalkd as a daemon listening on address 10.0.1.5,
port 11300. If you want to spy on what beanstalkd is doing, recompile
it in debug mode.
HOW TO USE IT
-------------
Here''s an example in Ruby. First, have one process put a job into the
queue:
beanstalk = Beanstalk::Pool([''localhost:11300''])
...
beanstalk.put(''hello'')
Then start another process to take jobs out of the queue and run them:
beanstalk = Beanstalk::Pool([''localhost:11300''])
loop do
j = beanstalk.reserve
puts j.body # prints "hello"
j.delete
end
DEPENDENCY
----------
Beanstalkd requires libevent. It was developed with libevent 1.3b, but
it may work with other versions.
http://monkey.org/~provos/libevent/
KNOWN BUGS
----------
* The min heap data structure is not dynamically-sized. This means a
fixed hard limit on the number of ready jobs (by default set to
around 16 million).
* The policy of signalling errors by closing the connection is wrong.
The server should send a helpful error response whenever possible
and only close the connection as a last resort.
kr
--
Posted via http://www.ruby-forum.com/.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---