I would like to suggest a couple of additions. I can code them, but I
wanted to float the ideas first

1. In our environment we have several hundred tubes and several
workers. We only want one job from each tube to be processed at any
time, so to do this we ensure that there are no overlaps in the tubes
watched by the workers.

This has a down side that we could have idle processes while there is
work todo when the job load gets biased towards tubes that happen to
be processed by the same worker process.

I would like to suggest two new reserve commands

reserve-limit LIMIT
reserve-limit-timeout LIMIT TIMEOUT

these would be the same as reserve and reserve-timeout with the
exception that a job is only picked from a tube if there are less than
LIMIT jobs already reserved on that tube

2. We monitor our beanstalkd servers with nagios to ensure that all
tubes have active workers. We have been using current-jobs-reserved +
current-waiting from stats-tube to determine how many workers are
working. However this seems to be unreliable. There is a small window
between when a worker releases a job and when it next calls reserve.
Although small we seem to hit this window often enough to be annoying.

I was thinking about adding to tube-stats a time value as how long ago
last worker activity happened (ie reserve, delete etc)

while we would not have the ability to check how many workers are
running we could at least know that one is active and work is being
done

Thoughts?

Graham.
-- 
You received this message because you are subscribed to the Google Groups 
"beanstalk-talk" group.
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