[Backgroundrb-devel] MiddleMan.worker blocks?
ezmobius at gmail.com
Wed Mar 7 16:53:10 EST 2007
On Mar 7, 2007, at 1:46 PM, Mason Hale wrote:
> On 3/7/07, Marc Evans <Marc at softwarehackery.com> wrote:
> Notice in the above the "sleep 0.001". Without that sleep, I get the
> blocking behavior I described in the original post. With it, I get the
> behavior I would expect, which is that I can retrieve the progress
> reasonably quickly and repeatedly.
> Again, any suggestions?
> That is very odd. My gut says it must have something to do with
> locking between threads.
> I've previously run into thread-related issues around the worker
> results feature, finding
> that it is unreliable. This smells like a similar problem.
> more detail:
> My suggestion would be to store your worker state externally in a
> database or other store.
> That "sleep 0.0001" works at all is weird, and I'd be hesitant to
> rely on it continuing to work.
Actually the sleep makes sense. It would seem that your code is
blocking the thread which makes all the other threads block. Putting
a sleep in there gives the scheduler time to schedule the other
threads to be run.
-- Ezra Zygmuntowicz
-- Lead Rails Evangelist
-- ez at engineyard.com
-- Engine Yard, Serious Rails Hosting
-- (866) 518-YARD (9273)
More information about the Backgroundrb-devel