Yes, I was doing that on purpose to test the timeouts.  I was trying
to see what would happen if a job went past its timeout (which would
happen if the consumer never deletes it), and it's giving me the
behavior I described above.

On Dec 3, 5:32 am, Håkon Nessjøen <[email protected]> wrote:
> Seems like you forgot j.delete. You only reserved it.
>
> On 3 Des, 01:00, Saikat Chakrabarti <[email protected]> wrote:
>
>
>
> > I have a client setup as follows:
>
> >     while True:
> >         print "Polling"
> >         try:
> >             j = connection.reserve()
> >             print j.data
> >             print j.Info
> >             time.sleep(15)
> >             print "Done sleeping"
> >             time.sleep(1)
> >         except Exception, e:
> >             print e
>
> > And i have a producer that adds jobs to my beanstalkd queue with a ttr
> > of 10 (I have a subclass of Job to set the TTR manually).  I'm
> > basically trying to see what happens when my client times out.  What
> > happens, though, is the following:
>
> > Polling
> > 55
> > {'data': {'buries': 0, 'releases': 0, 'tube': 'default', 'timeouts':
> > 0, 'ttr': 10, 'age': 0, 'pri': 0, 'delay': 0, 'state': 'reserved',
> > 'reserves': 1, 'time-left': 9, 'kicks': 0, 'id': 20}, 'state': 'ok',
> > 'bytes': 136}
> > Done sleeping
> > Polling
> > 55
> > Server returned: NOT_FOUND
> > Polling
>
> > So it gets the job the first time, and as expected, it times out, so
> > when the client finishes its 15 second wait, it starts polling again
> > and gets the job again, except this time, there is an exception as the
> > server returns NOT_FOUND.  And the client continues but there doesn't
> > seem to be any more jobs on the queue.  So my questions are:
>
> > 1) How is the client even picking up the job the second time if the
> > job doesn't exist?  The NOT_FOUND message is presumably coming from
> > the call to j.Info which calls stats-jobs, and according to the
> > protocol, when this happens, that can only mean that the job doesn't
> > exist.
>
> > 2) Why is the server removing the job instead of just releasing it?
> > From the protocol, it doesn't seem like this is the expected behavior,
> > but I'm not sure.  Or is the job still somehow on the queue, just no
> > longer reservable?

--

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