2 posts tagged “web2.0”
Overview
At my job, we've just about finished work on the next segment of our Catalyst-based application. It required the implementation of a JobQueue system, and after careful consideration we narrowed down our choices.
Why TheSchwartz?
Aside from the fun statements that are made while working it into every day business conversation, it had a few things that really stood out over the competition. What competition, you say? Well, we really didn't have many options. Our choices for a reliable jobqueue (reliable meaning it handles failure conditions internally, and can guarantee success or failure) were really TheSchwartz, Catalyst::Engine::JobQueue or a home grown solution. TheSchwartz was really the only choice.
Getting it running
Setup was actually very simple. Aside from the hidden doc directory containing the schema, it was all laid out in a sane fashion. We configured one of our higher powered slaves to be the jobqueue database, and created the InnoDB tables. After that, configuring the test cases to use our DB and we were in business. Things couldn't have gone easier, really. Well, maybe if there was more Pod available but I'm not complaining one bit, considering how well it works.
Building Job Producers
Obviously, the worker machines are going to have a variety (nigh, a plethora) of tasks as time goes on. Building a variety of worker classes to dispatch the various commands grows tiring. This is where the ingenuity of one of our developers came into play and Object::Recorder was born. What this module allows us to do is have object-level continuations. This allows us to have a simple model class that uses Object::Recorder to insert jobs into the queue. The worker threads are simple Object::Recorder::Player objects that replay the serialized method calls (including construction). This means that we can modify our JobProducer and underlying worker code without ever having to touch TheSchwartz workers. Everything Just Works. Mostly, but that's what the community and RT is for.
Today I was going through the grind of my development tasks, and working on integrating MochiKit in with a new UI. Progress was good, and I was getting a lot of some really neat web-2.0-ish chimp attract features going. In Firefox. Well, after they all work in Firefox I fire up rdesktop and Explorer and get ready for the IE dance.
The first thing that catches my attention is that after some quick modification via chimp-attract, my form no longer submits. None of the buttons do anything.
After some more debugging, I notice that the form was quite large and that may have something to do with it, so I set the form encoding type to multi-part and I still don't get anywhere. I had to reduce the byte-count by pruning away some unnecessary data (just padding delimiters, etc) and that seemed to work.
It didn't seem to be related to the total form size, just one specific input and I don't know why IE would simply not submit the form. I could attach an onclick event to each submit button and it fired just fine, would return true, and then not do anything.
Thank you IE, your debugging tools are fantastic.