equal
deleted
inserted
replaced
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: |