thirdparty/google_appengine/google/appengine/api/labs/taskqueue/taskqueue.py
changeset 2864 2e0b0af889be
parent 2413 d0b7dac5325c
child 3031 7678f72140e6
equal deleted inserted replaced
2862:27971a13089f 2864:2e0b0af889be
   478 
   478 
   479     Note: This will not check if this task already exists in the queue.
   479     Note: This will not check if this task already exists in the queue.
   480     """
   480     """
   481     return self.__enqueued
   481     return self.__enqueued
   482 
   482 
   483   def add(self, queue_name=_DEFAULT_QUEUE):
   483   def add(self, queue_name=_DEFAULT_QUEUE, transactional=True):
   484     """Adds this Task to a queue.
   484     """Adds this Task to a queue. See Queue.add."""
   485 
   485     return Queue(queue_name).add(self, transactional=transactional)
   486     Args:
       
   487       queue_name: Name of the queue to add this Task to. (optional)
       
   488 
       
   489     Returns:
       
   490       This Task itself.
       
   491 
       
   492     Raises:
       
   493       BadTaskStateError if this task has already been enqueued.
       
   494     """
       
   495     return Queue(queue_name).add(self)
       
   496 
   486 
   497 
   487 
   498 class Queue(object):
   488 class Queue(object):
   499   """Represents a Queue."""
   489   """Represents a Queue."""
   500 
   490 
   512           'Queue name does not match pattern "%s"; found %s' %
   502           'Queue name does not match pattern "%s"; found %s' %
   513           (_QUEUE_NAME_PATTERN, name))
   503           (_QUEUE_NAME_PATTERN, name))
   514     self.__name = name
   504     self.__name = name
   515     self.__url = '%s/%s' % (_DEFAULT_QUEUE_PATH, self.__name)
   505     self.__url = '%s/%s' % (_DEFAULT_QUEUE_PATH, self.__name)
   516 
   506 
   517   def add(self, task):
   507   def add(self, task, transactional=True):
   518     """Adds a Task to this Queue.
   508     """Adds a Task to this Queue.
   519 
   509 
   520     Args:
   510     Args:
   521       task: The Task to add.
   511       task: The Task to add.
       
   512       transactional: If false adds the task to a queue irrespectively to the
       
   513         enclosing transaction success or failure. (optional)
   522 
   514 
   523     Returns:
   515     Returns:
   524       The Task that was supplied to this method.
   516       The Task that was supplied to this method.
   525 
   517 
   526     Raises:
   518     Raises:
   553     for key, value in _flatten_params(task.headers):
   545     for key, value in _flatten_params(task.headers):
   554       header = request.add_header()
   546       header = request.add_header()
   555       header.set_key(key)
   547       header.set_key(key)
   556       header.set_value(value)
   548       header.set_value(value)
   557 
   549 
       
   550     if transactional:
       
   551       from google.appengine.api import datastore
       
   552       datastore._MaybeSetupTransaction(request, [])
       
   553 
   558     call_tuple = ('taskqueue', 'Add', request, response)
   554     call_tuple = ('taskqueue', 'Add', request, response)
   559     apiproxy_stub_map.apiproxy.GetPreCallHooks().Call(*call_tuple)
   555     apiproxy_stub_map.apiproxy.GetPreCallHooks().Call(*call_tuple)
   560     try:
   556     try:
   561       apiproxy_stub_map.MakeSyncCall(*call_tuple)
   557       apiproxy_stub_map.MakeSyncCall(*call_tuple)
   562     except apiproxy_errors.ApplicationError, e:
   558     except apiproxy_errors.ApplicationError, e: