durusmail: quixote-users: Design question
Design question
2003-07-02
Re: Design question
2003-07-03
2003-07-03
2003-07-04
Graham Fawcett (2 parts)
2003-07-04
2003-07-04
2003-07-04
Design question
2003-07-04
Design question
Paul D
2003-07-02
Hi!
Long time lurker, first time poster.

I'm writing a web application that:
"backend"
Every three minutes parses a webpage and checks for problems (server
monitoring). After that it matches those against a ruleset (SQLObject
and pySQLite) to weed out unimportant problems.

webui
The web UI will reload a frame every 30 seconds to check for new
problems and play an alarm there are any. The problem will be assigned
to the user who first clicks on it, the user will either solve it and
write down the solution, or create a new rule to ignore it in the
future.

Right now I got the "backend" kind of working. The problem is how to
glue these parts together. I'm using medusa and I'd like to just one
process - running the 'backend' as a thread. The server has to be able
to run on winnt as a service. There won't be many users (max 15
concurrent). Another thing is that the update/rulematching takes about
10-30 seconds and it's gonna be a mess if the webui checks for problems
within an update, I'll need some kind of locking mechanism.
I've come up with two solutions:

1. Start the backend as a thread in the quixote __init__py file. The
webui will check a dictionary with problems in the backend every
minute. Since I'm using medusa the thread will only be started once but
it's not very pretty.

2. Start the backend within the medusa_server.py script. I can't figure
out a way to get the webui to have access to the backend namespace this
way. Maybe subclass the Publisher and pass a reference to the backend
in the request object?
Another solution is to make the backend write problems to a database
table and have the webui check this table every minute.

Oh, another question: is it possible to raise an exception i the thread
and have quixote exception tools handle it and present it when the user
eventually fetches another page?

What's the best solution? I'm pretty new to python and designing bigger
things then filename sorters so any input is interesting.

thanks! / Paul


reply