You can use the standard Java synchronization to synchronize the task threads, e.g.
synchronized (YourMemcachedDataClass.class) { YourMemcachedDataClass cachedData = (YourMemcachedDataClass)cache.get(CACHE_KEY); if (cachedData == null) cachedData = new YourMemcachedDataClass (); cachedData.add(...); cachedData.set(...); cache.put(CACHE_KEY, cachedData); } this way only 1 thread at a time will get into the synchronized block. Hope it helps.. Michael Weinberg On Dec 13, 11:41 am, Ice13ill <andrei.fifi...@gmail.com> wrote: > Maybe there's something that i don't know very well about the memcache > service and this problem is simpler then i thing it is... If so, > please advice :) > > On Dec 13, 6:38 pm, Ice13ill <andrei.fifi...@gmail.com> wrote: > > > > > > > > > I need advice for implementing concurrent access to a memcache > > variable, when used by multiple running tasks. > > The problem is this: I have a number of tasks reading from datastore > > and doing some processing. > > When the processing is complete, i add a String to a List stored in > > memcache. So i need to get the List from memcache, add a new element, > > and put it back. The pb is that if 2 tasks write on that variable, i > > get an exception (I understand that the memcache service gives me a > > "clone" of the object, not the object itself, or am I wrong ?) > > So how can i avoid more than one tasks writing in the same object ? -- 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-j...@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.