Forum: Ruby on Rails Processing uploaded XML file

Announcement (2017-05-07): is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see and for other Rails- und Ruby-related community platforms.
78ee9d5c27eebd474b9552c6203571c0?d=identicon&s=25 Marc (Guest)
on 2008-12-19 20:40
(Received via mailing list)
Hi all

Sorry if this seems silly, only been learning Ruby and Rails for 2
weeks, though I have been programming since the Commodore 64 came out.

I need to process an XML file once it is uploaded (currently using
The problem is that the files can be quite slow to process, up to 30
seconds for some. Once this processing is done, I need to save that
data to the model to which the file is attached.

So my question is, where is the best place to call the processing
function from?
Will the processing block mongrel? Should it go in a new thread? If
so, how do I do that?
And is there any speedier Library than REXML for processing XML?

Thanks for your help
41cc2c53544016a86472343ab3fdc0ff?d=identicon&s=25 Simon Macneall (Guest)
on 2008-12-20 00:51
(Received via mailing list)
Hi Marc,

Yes, the processing will block mongrel, but you should have more than
mongrel (either using Passenger, or straight apache load balancing). The
bigger question is can your user wait 30 seconds for the response? There
are ways to run the process on a separate thread, but I haven't had to
that yet.

Yes, libXML is *much* faster than REXML. We are in the process of
our code, but the XML code is entwined so far through our app it is a

78ee9d5c27eebd474b9552c6203571c0?d=identicon&s=25 Marc (Guest)
on 2008-12-20 06:55
(Received via mailing list)
Thanks for the info Simon.

As far as the users waiting goes, thats easy... They will wait as long
as I tell them to as long as I give them something to look at and a
reason (Spinning CD and a "Please wait, Reticulating Splines" message
perhaps). In fact the entire process isnt really a vital part of the
program, it is simply to display some extra information for other
users who may want to download it. So if that information was updated
say 5 minutes later, it wouldnt really matter.
In any event, I am having a look at starling and working to start a
threaded process in the background and update the record whenever it
finishes. If however libxml is as fast as you say, perhaps I simply
need to do some load balancing and make them wait.
Of course a major problem is that I still dont know where to call the
processor from. Rails can be extremely frustrating when you are still
learning it.

Thanks for the info Simon
This topic is locked and can not be replied to.