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 <[email protected]> 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 <[email protected]> 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 [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/google-appengine-java?hl=en.