The reason I am using the memcache is to try and reduce the number of
datastore reads and writes before the new pricing comes into effect.

I haven't really looked at task queues as I'm not really sure how they
can help. Would it be possible to use a task to write an entity to the
datastore when it is evicted (if I were to set an expiration delta of
say 2 minutes). If that were possible it'd be ideal.

On Oct 3, 10:40 pm, Bruno Fuster <brunofus...@gmail.com> wrote:
> Yes. You need to do some research, there might be another solutions.
> I don't think that returning all cached keys is that simple.
>
> putIfUntouched is used to update your value atomically.
>
> Why don't you update each single entity in a task queue after putting it
> into the cache ?
>
> Anyway, can't you update your entity in background with task queues right
> after putting it into cache ? It would consume more resources 'cause your
> not doing batch updates though.
>
>
>
>
>
>
>
>
>
> On Mon, Oct 3, 2011 at 6:29 PM, mscwd01 <mscw...@gmail.com> wrote:
> > That's a shame, it's a real disadvantage not having that simple
> > functionality.
>
> > Thanks for your example, although I found it a little difficult to
> > understand it completely. Are you suggesting having an entry in the
> > cache with a key string "allKeys" which maps to a List of keys
> > belonging to all the other entities in the cache? Would this allow me
> > to iterate through the keys, saving the entity to the datastore and
> > then removing the entry from the cache?
>
> > Also what is the "putIfUntouched" statement for?
>
> > Thanks again
>
> > On Oct 3, 9:51 pm, Bruno Fuster <brunofus...@gmail.com> wrote:
> > > I don't think so.
>
> > > You could create a key with all entities ids that need to be updated.
>
> > > Something like:
>
> > > public void saveEntity() {
>
> > >     cache.put(key, entity);
> > >     queue.add(withUrl("/entitiesToUpdate?id="+entity.getId()));
>
> > > }
>
> > > and then
>
> > > public void entitiesToUpdate(Long id) {
>
> > >   IdentifiableValue i = cache.getIdentifiable("allKeys");
> > >   List<Long> keys = i.getValue();
> > >   keys.add(id);
>
> > >   boolean put = cache.putIfUntouched("allKeys", i, keys);
> > >   if (!put) {
> > >        //response 409 for conflict due to concurrency so appengine will
> > > retry this later
> > >   }
>
> > > }
> > > On Mon, Oct 3, 2011 at 5:38 PM, mscwd01 <mscw...@gmail.com> wrote:
> > > > Hey
>
> > > > How would one return all the values stored within the memcache?
> > > > I have tried using entrySet() and values() methods on the cache but
> > > > both result in an java.lang.UnsupportedOperationException.
>
> > > > Ideally, I need to return all the entities stored within the cache and
> > > > bulk save them to the datastore - is this possible?
>
> > > > Thanks
>
> > > > --
> > > > You received this message because you are subscribed to the Google
> > Groups
> > > > "Google App Engine for Java" group.
> > > > To post to this group, send email to
> > > > google-appengine-java@googlegroups.com.
> > > > To unsubscribe from this group, send email to
> > > > google-appengine-java+unsubscr...@googlegroups.com.
> > > > For more options, visit this group at
> > > >http://groups.google.com/group/google-appengine-java?hl=en.
>
> > > --
> > > Bruno Fuster
>
> > --
> > You received this message because you are subscribed to the Google Groups
> > "Google App Engine for Java" group.
> > To post to this group, send email to
> > google-appengine-java@googlegroups.com.
> > To unsubscribe from this group, send email to
> > google-appengine-java+unsubscr...@googlegroups.com.
> > For more options, visit this group at
> >http://groups.google.com/group/google-appengine-java?hl=en.
>
> --
> Bruno Fuster

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

Reply via email to