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.
