May be you can try database long connection.

On Fri, Aug 19, 2011 at 10:44 AM, Andre Terra <andrete...@gmail.com> wrote:

> I think a better solution would be to use a store rather than cache
> (protip: redis) and, if the calculations are lengthy, write a
> 'publish' function that writes them to the store and let the user
> choose when to see the changes in the results appear on the website.
>
> Additionally, add a 'modified since last publish' flag that is
> switched on with post_save and off with publish().
>
> And of course, use celery for running the calculations in the
> background. Here, redis doubles (or triples!) as the result and broker
> backends (see the celery docs for more info on that).
>
>
> Cheers,
> AT
>
> On 8/18/11, Felipe Arruda <felipe.arruda.pon...@gmail.com> wrote:
> > Humm, I see, the second case I could make out of it somehow(just have
> > some doubts in 2.5: How am I supposed to do this?)
> > The first one I could't see how I'm not going to lose the changes,
> > done in cache.
> > My biggest problem is in altering some value in some models, since
> > this operation will be done many times, and I can't do if not by
> > this(so that the client infos wont be any different from the DB), and
> > for what I understand from this solution I would work if my operations
> > where simple retrieving data from the server and doing some
> > calculation, but will lose the informations in cache(substituting it
> > from the DB. I want it to be otherwise).
> >
> > And about the django-celery: Never heard about it, but now I'm going
> > to use it(but for other purposes, and other projects too). Thanks for
> > the tip!
> >
> > Another thing. I thought of doing something like this:
> > Use MemCache, and the second ideia presented, put like a very long
> > time, and run a parallel task(using celery? or maybe some thing in
> > django-extensions that integrate with cron), so that from time to
> > time(a more reasonable time then the timeout from the cache) it will
> > get every info from cache and save it in the DB.
> > This way, in the worst case, every 10 minutes the system would have a
> > small halt to save things(or could make a more complex way to save
> > each register in different times).
> > What do you thing about it? To much POG, or is in the right track?
> >
> > On Aug 18, 3:57 pm, Doug Ballance <dball...@gmail.com> wrote:
> >> You probably don't want to cache changes.  Or if you do, it would be
> >> better done elsewhere (like a caching raid controller/w battery on
> >> your database machine).  The usual cache patterns I've seen are:
> >>
> >> 1) Fetch from database
> >> 2) Store in cache with a reasonable timeout to that changes are
> >> reflected as the cache expires
> >> 3) Look in cache, if found return that.  If not goto step (1)
> >>
> >> or
> >>
> >> 1) Fetch from database
> >> 2) Store in cache with a -long- timeout
> >> 2.5) Track changes to cached objects and update the stored information
> >> if it changes.
> >> 3) Look in cache, if found return it.  if not goto step(1)
> >>
> >> since the changes won't be reflected as rapidly due to the long
> >> timeout, you can configure the post_save/post_delete/etc signals to
> >> automatically update the cached value every time a change is made to
> >> one of that models instances.  This is what the django-cache-utils app
> >> is doing for you.  The trick is that the more complicated your use,
> >> the more complex the cache invalidation is going to have to be.
> >>
> >> Another possiblity is that caching may be the wrong solution to your
> >> problem. If for example a web request need to do so a bunch of
> >> expensive operations, but does not need to do them interactively with
> >> your user, a solution like django-celery may be better.  With celery
> >> the job gets scheduled for execution outside of the web request-
> >> response system (possibly even on another machine) and gives you a job
> >> id.  This allows the user to get on with things, leaving the work to
> >> be done behind the scenes.  If the user needs to know the results or
> >> state of the job  you can use ajax or refreshing to check back using
> >> the id to retreive the results when the job completes.
> >
> > --
> > You received this message because you are subscribed to the Google Groups
> > "Django users" group.
> > To post to this group, send email to django-users@googlegroups.com.
> > To unsubscribe from this group, send email to
> > django-users+unsubscr...@googlegroups.com.
> > For more options, visit this group at
> > http://groups.google.com/group/django-users?hl=en.
> >
> >
>
> --
> Sent from my mobile device
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To post to this group, send email to django-users@googlegroups.com.
> To unsubscribe from this group, send email to
> django-users+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/django-users?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to