On 15/02/13 03:09, neubyr wrote:

I do have a doubt regarding this - e.g. how would I implement this if my
program/application is web based. For example, loading the text file
during web server start and stop.

For a long running process like a web server this is probably the wrong approach. You probably want to save the data more regularly - maybe even at the end of every user transaction. But with a web server we have the additional problem of usually wanting to handle multiple requests in parallel so storing data in memory gets more complicated - which takes us back to using a data base which pretty much handles all of that for you.

If you will only have a single request running at a time then you can use the same try/finally approach in your transaction processing code. But because they run so often I'd add the 'dirty flag' idea that somebody else mentioned too so that you don;t sabve if no changes have been made.

A dirty flag is simply a global (or class) level variable (isDirty) that gets set by your code anytime you change the data. If a book changes its state it sets the flag to True. The save code then does something like

with open(filename) as store
   if Book.isDirty:
      for book in Book.instances:
          book.save(store)

That will ensure that any changes are saved but we don't waste time
if no changes exist.

--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to