I'm trying to solve the following problem using task queues:

  1. Queue a task to perform some action "N".
  2. Until action N has been performed, don't allow any other tasks to be
queued that also perform action N.
  3. As soon as action N has been performed, immediately allow other tasks
to be queued to perform action N (repeat from step 1).

Using task names almost accomplishes what I need, except that at step 3 it
will be at least seven days before another task can be queued to perform
action N, when I need it to be allowed immediately:

  "This (task names) provides a lightweight mechanism for ensuring once-only
semantics. Once a Task with name N is written, any subsequent attempts to
insert a Task named N will fail. Eventually (at least seven days after the
task successfully executes), the task will be deleted and the name N can be
reused."

I've thought of different ways to solve this, most likely by using a
memcache flag as a semaphore. But, it would be nice if the task queue API
could support this natively, maybe by adding a "reuse time" or "exclusion
time" parameter when setting the TaskOptions name parameter.

Any thoughts on this?

Vince

--

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.


Reply via email to