unicorn Ruby/Rack server user+dev discussion/patches/pulls/bugs/help
 help / color / mirror / code / Atom feed
From: Brian Underwood <bunderwood@rbmtechnologies.com>
To: mongrel-unicorn@rubyforge.org
Subject: Forking for background processing with rails/unicorn
Date: Wed, 16 Feb 2011 08:06:36 -0500	[thread overview]
Message-ID: <AANLkTi=h707_pUPovtSdsrBAG-sSVEVJXgfysSWCwTAJ@mail.gmail.com> (raw)

Hello,

I've been working for a few days on a problem which, after tracking it
down, seems to be related to unicorn.  I'm hoping that somebody might
be able to help with information about what's going on.

In the Rails 3 application that I support, we sometimes fork during a
web request in order to do background processing behind the scenes
without the user (and the browser connection) to wait for it to
finish.  I realize that a better method would be to have a queue of
jobs to be processed (I even created a gem called job_boss which works
well for our case), but it will take us a while to get there, so I'm
trying to fix this for now.

The problem that I'm finding is that, when I fork, the HTTP connection
doesn't close.  IE doesn't handle this as well and the browser is left
sitting, waiting for the child process to finish rather than being
redirected.  This functionality worked fine in our application when we
were using Rails 2.3.5 and Unicorn 1.1.3, but broke when we moved to
Rails 3 and Unicorn 3.0.0 (we've since moved to Unicorn 3.4.0 and the
problem remains, I had some hope that Unicorn 3.3.1 might have
addressed it).

I've been able to solve this problem temporarily by closing two file
descriptors manually (#3 and, depending on the version of Rails #6 or
#7).  Obviously this is not ideal.  I found the UNICORN_FD environment
variable when looking through the Unicorn source, but that only seems
to indicate #3.  Where might #6/#7 be coming from?  Is there some way
that I can determine these without hard-coding the FD #?

Any help that you can provide would be greatly appreciated,
Brian Underwood
Software Systems Engineer

RBM Technologies, Inc.
215 1st St  ·  Cambridge, MA 02142
call  (617) 401-4666
visit www.rbmtechnologies.com


The Power Behind the Planogram™

"This email and any of its attachments may contain proprietary
information, which is privileged, confidential, or subject to
copyrights belonging to RBM Technologies, Inc. This email is intended
solely for the use of the individual or entity to which it is
addressed. If you are not the intended recipient of this email, you
are hereby notified that any dissemination, distribution, copying, or
action taken in relation to the contents of and attachments to this is
strictly prohibited and may be unlawful. If you have received this
email in error, please notify the sender immediately and permanently
delete the original and any copy of this email and any printout. Thank
you."
_______________________________________________
Unicorn mailing list - mongrel-unicorn@rubyforge.org
http://rubyforge.org/mailman/listinfo/mongrel-unicorn
Do not quote signatures (like this one) or top post when replying


             reply	other threads:[~2011-02-16 13:21 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-16 13:06 Brian Underwood [this message]
2011-02-16 17:41 ` Forking for background processing with rails/unicorn Eric Wong

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://yhbt.net/unicorn/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='AANLkTi=h707_pUPovtSdsrBAG-sSVEVJXgfysSWCwTAJ@mail.gmail.com' \
    --to=bunderwood@rbmtechnologies.com \
    --cc=mongrel-unicorn@rubyforge.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://yhbt.net/unicorn.git/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).