On Friday, July 15, 2011 12:19:12 PM UTC+1, Andrew Betts wrote:
>
> So, if that's the case, how would a worker know that a job was available on 
> a server other than the one it sent the reserve to?  Is it simply a matter 
> of running enough workers that there's always at least one watching each 
> beanstalkd server?  Is that the generally recommended way of implementing a 
> pool class (if I were to write one in PHP)?  Would it be better to have each 
> worker connected to all (or at least several) beanstalk servers, and if so, 
> any suggestions for how a single threaded worker should alternate between 
> servers?
>
> And are there any PHP client libraries I'm not aware of that already have 
> this kind of functionality?
>

There's an open issue for multi-server support in Pheanstalk, but no 
movement on it yet,
https://github.com/pda/pheanstalk/issues/17

As you'd pretty much said, the two options are to either connect, with a 
short or no-timeout [reserve(0), in Pheanstalk] to each server in turn, or 
just be running enough workers and trust that probability will get to them 
all eventually.

The former means that you could end up in quite a tight loop, so I'd tend 
towards the latter, as I'll usually be running a dozen or more workers. 
Since my own queues can also empty out, I'd rather have a few seconds 
reserve-with-timeout call. Getting stats for the number of ready-jobs from 
the server is easy enough, so you'll be able to see if the queues are going 
down or not anyway.

You could also do both as well, choose a couple of beanstalkd servers at 
random and reserve from one, then try the next, rinse and repeat.

Alister
-- 
I presented http://abulman.co.uk/presentations/Beanstalkd-2010-05-06/ at PHP 
London, May 2010

-- 
You received this message because you are subscribed to the Google Groups 
"beanstalk-talk" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/beanstalk-talk/-/WZeCNWFau0wJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/beanstalk-talk?hl=en.

Reply via email to