Hello;

this arises in the context of a django application  - but it might be a 
more general Python/Postgres/... problem.

[ The django application is existing all right - but the problem I am 
describing here is yet only in my head; I am seeking advice on how to 
proceed. ] Assume I have a model with a large text field:


class TextModel(models.Model):
     text = models.TextField( ... )

     @classmethod
     def update(cls, id , new_text):
           # Fetch existing ID - or alternatively create a new one.
           try: 
               tm = TextModel.objects.get( pk = id )
           except TextModel.DoesNotExist:
               tm = TextModel( )

           # Perform time consuming calculation (strcat just for 
demonstration) and save again.
           tm.text += new_text   
           tm.save()


Now - obviously the whole update() method is one big screaming 
race-condition, but it is not clear to ensure that only one thread/process 
is accessing this DB element at a time. Suggestions on how to solve this 
race condition - or suggestions of an alternative race free approach would 
be highly appreciated.


Joakim


-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/58e4726a-898c-4ef2-a49a-fd9d43552d99%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to