diff -r 27971a13089f -r 2e0b0af889be thirdparty/google_appengine/google/appengine/api/labs/taskqueue/taskqueue.py --- a/thirdparty/google_appengine/google/appengine/api/labs/taskqueue/taskqueue.py Sat Sep 05 14:04:24 2009 +0200 +++ b/thirdparty/google_appengine/google/appengine/api/labs/taskqueue/taskqueue.py Sun Sep 06 23:31:53 2009 +0200 @@ -480,19 +480,9 @@ """ return self.__enqueued - def add(self, queue_name=_DEFAULT_QUEUE): - """Adds this Task to a queue. - - Args: - queue_name: Name of the queue to add this Task to. (optional) - - Returns: - This Task itself. - - Raises: - BadTaskStateError if this task has already been enqueued. - """ - return Queue(queue_name).add(self) + def add(self, queue_name=_DEFAULT_QUEUE, transactional=True): + """Adds this Task to a queue. See Queue.add.""" + return Queue(queue_name).add(self, transactional=transactional) class Queue(object): @@ -514,11 +504,13 @@ self.__name = name self.__url = '%s/%s' % (_DEFAULT_QUEUE_PATH, self.__name) - def add(self, task): + def add(self, task, transactional=True): """Adds a Task to this Queue. Args: task: The Task to add. + transactional: If false adds the task to a queue irrespectively to the + enclosing transaction success or failure. (optional) Returns: The Task that was supplied to this method. @@ -555,6 +547,10 @@ header.set_key(key) header.set_value(value) + if transactional: + from google.appengine.api import datastore + datastore._MaybeSetupTransaction(request, []) + call_tuple = ('taskqueue', 'Add', request, response) apiproxy_stub_map.apiproxy.GetPreCallHooks().Call(*call_tuple) try: