I was wondering if there is a 'right' way to design a timeconsuming process and make it user friendly and maintainable.

I have an operation that may take several minutes to complete, and i have a webinterface through which a user may request (among a variety of reports) the up-to-date result from that operation. Specifically, i look for certain discrepancies in a database. The result is a list of user id's, the date the first discrepancy occurred and an enum denoting the severity.
I have the businesslogic in place, but the technicalities elude me.

For the front end i will probably use polling, and i think i should store/cache the results in a table in case the request is repeated. The database is only updated once a day so the result is valid for the day, but should be recomputed if the results are older.

Another possibility is to use some kind of cron job to run the process every day right after the database update. The sysadmin would then get the extra task of re-scheduling the procedure if the database update gets rescheduled.

Writing the result to my database would also break part of the design where my webapp only *reads* data, so maybe i should store the result elsewhere, another database or maybe even in text file?

Has anyone implemented something similar?