I did develop an async/non-blocking fire-and-forget Nginx module to beanstalkd, it is basically a client but only with put support. All messages are sent trough a non-blocking socket and a separate thread holds an event loop (epoll) to manage POLLHUP/POLLERR events and reconnect the socket based on a retry/polling parameter.
Just drop me a msg if you want any help... cheers.. On Wednesday, August 28, 2013 12:25:25 PM UTC+1, OmarShariffDontLikeIt wrote: > > A non-blocking connection? Hmmm interesting. I'm not sure that is an > option with the library I am using to connect to beanstalk. Could you > expand a little on what you mean by non-blocking connection, and how you > envisage this working? > > Cheers, > Ben > > On Wednesday, August 28, 2013 12:17:33 PM UTC+1, Sebastian Lagemann wrote: >> >> Hey, >> >> Am 28.08.2013 um 10:01 schrieb OmarShariffDontLikeIt < >> [email protected]>: >> > >> > At the moment I have a single connection. As each job comes in I keep a >> track of it. If there are currently active jobs being processed, I switch >> to reserve-with-timeout, allowing the thread to process results. If there >> are no active jobs being processed, then the connection switches to >> traditional blocking reserve. The problem is that the blocking reserve >> obviously blocks the active thread. >> > >> > Mmmmm. I may have to sack off the blocking reserve and just go with >> reserve-with-timeout(0) and poll periodically. Not ideal, but I can't see a >> way around this at the moment. >> >> You could also use a non-blocking connection which let your thread >> reading data from the stream as soon as the thread is ready again to read >> from it. >> >> Best, >> >> Sebastian > > -- You received this message because you are subscribed to the Google Groups "beanstalk-talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/beanstalk-talk. For more options, visit https://groups.google.com/groups/opt_out.
