Package com.google.appengine.api.taskqueue.TaskQueuePb

Examples of com.google.appengine.api.taskqueue.TaskQueuePb.TaskQueueBulkAddRequest


            } catch (Exception e) {
                ThrowableUtil.wrapAndThrow(e);
            }
        } else if (service.equals(TASKQUEUE_SERVICE)
            && method.equals(BULK_ADD_METHOD)) {
            TaskQueueBulkAddRequest taskPb = new TaskQueueBulkAddRequest();
            taskPb.mergeFrom(requestBuf);
            TaskQueueBulkAddResponse responsePb =
                new TaskQueueBulkAddResponse();
            for (int i = 0; i < taskPb.addRequestSize(); i++) {
                tasks.add(taskPb.getAddRequest(i));
                responsePb.addTaskResult().setChosenTaskName(
                    "task" + String.valueOf(System.nanoTime()));
            }
            return responsePb.toByteArray();
        } else if (MEMCACHE_SERVICE.equals(service)) {
View Full Code Here


  public Future<List<TaskHandle>> addAsync(
      com.google.appengine.api.datastore.Transaction txn, Iterable<TaskOptions> taskOptions) {
    final List<TaskOptions> taskOptionsList = new ArrayList<TaskOptions>();
    Set<String> taskNames = new HashSet<String>();

    final TaskQueueBulkAddRequest bulkAddRequest = new TaskQueueBulkAddRequest();

    boolean hasPushTask = false;
    boolean hasPullTask = false;
    for (TaskOptions option : taskOptions) {
      TaskQueueAddRequest addRequest = bulkAddRequest.addAddRequest();
      validateAndFillAddRequest(txn, option, addRequest);
      if (addRequest.getMode() == TaskQueueMode.Mode.PULL.getValue()) {
        hasPullTask = true;
      } else {
        hasPushTask = true;
      }

      taskOptionsList.add(option);
      if (option.getTaskName() != null && !option.getTaskName().isEmpty()) {
        if (!taskNames.add(option.getTaskName())) {
          throw new IllegalArgumentException(
              String.format("Identical task names in request : \"%s\" duplicated",
                  option.getTaskName()));
        }
      }
    }
    if (bulkAddRequest.addRequestSize() > QueueConstants.maxTasksPerAdd()) {
      throw new IllegalArgumentException(
          String.format("No more than %d tasks can be added in a single add call",
              QueueConstants.maxTasksPerAdd()));
    }

    if (hasPullTask && hasPushTask) {
      throw new IllegalArgumentException(
          "May not add both push tasks and pull tasks in the same call.");
    }

    if (txn != null &&
        bulkAddRequest.encodingSize() > QueueConstants.maxTransactionalRequestSizeBytes()) {
      throw new IllegalArgumentException(
          String.format("Transactional add may not be larger than %d bytes: %d bytes requested.",
              QueueConstants.maxTransactionalRequestSizeBytes(),
              bulkAddRequest.encodingSize()));
    }

    Future<TaskQueueBulkAddResponse> responseFuture = makeAsyncCall(
        "BulkAdd", bulkAddRequest, new TaskQueueBulkAddResponse());
    return new FutureAdapter<TaskQueueBulkAddResponse, List<TaskHandle>>(responseFuture) {
      @Override
      protected List<TaskHandle> wrap(TaskQueueBulkAddResponse bulkAddResponse) {
        if (bulkAddResponse.taskResultSize() != bulkAddRequest.addRequestSize()) {
            throw new InternalFailureException(
                String.format("expected %d results from BulkAdd(), got %d",
                    bulkAddRequest.addRequestSize(), bulkAddResponse.taskResultSize()));
        }

        List<TaskHandle> tasks = new ArrayList<TaskHandle>();
        RuntimeException taskqueueException = null;
        for (int i = 0; i < bulkAddResponse.taskResultSize(); ++i) {
          TaskQueueBulkAddResponse.TaskResult taskResult = bulkAddResponse.taskResults().get(i);
          TaskQueueAddRequest addRequest = bulkAddRequest.getAddRequest(i);
          TaskOptions options = taskOptionsList.get(i);

          if (taskResult.getResult() == TaskQueueServiceError.ErrorCode.OK.getValue()) {
            String taskName = options.getTaskName();
            if (taskResult.hasChosenTaskName()) {
View Full Code Here

  public Future<List<TaskHandle>> addAsync(
      com.google.appengine.api.datastore.Transaction txn, Iterable<TaskOptions> taskOptions) {
    final List<TaskOptions> taskOptionsList = new ArrayList<TaskOptions>();
    Set<String> taskNames = new HashSet<String>();

    final TaskQueueBulkAddRequest bulkAddRequest = new TaskQueueBulkAddRequest();

    boolean hasPushTask = false;
    boolean hasPullTask = false;
    for (TaskOptions option : taskOptions) {
      TaskQueueAddRequest addRequest = bulkAddRequest.addAddRequest();
      validateAndFillAddRequest(txn, option, addRequest);
      if (addRequest.getMode() == TaskQueueMode.Mode.PULL.getValue()) {
        hasPullTask = true;
      } else {
        hasPushTask = true;
      }

      taskOptionsList.add(option);
      if (option.getTaskName() != null && !option.getTaskName().equals("")) {
        if (!taskNames.add(option.getTaskName())) {
          throw new IllegalArgumentException(
              String.format("Identical task names in request : \"%s\" duplicated",
                  option.getTaskName()));
        }
      }
    }
    if (bulkAddRequest.addRequestSize() > QueueConstants.maxTasksPerAdd()) {
      throw new IllegalArgumentException(
          String.format("No more than %d tasks can be added in a single add call",
              QueueConstants.maxTasksPerAdd()));
    }

    if (hasPullTask && hasPushTask) {
      throw new IllegalArgumentException(
          "May not add both push tasks and pull tasks in the same call.");
    }

    if (txn != null &&
        bulkAddRequest.encodingSize() > QueueConstants.maxTransactionalRequestSizeBytes()) {
      throw new IllegalArgumentException(
          String.format("Transactional add may not be larger than %d bytes: %d bytes requested.",
              QueueConstants.maxTransactionalRequestSizeBytes(),
              bulkAddRequest.encodingSize()));
    }

    Future<TaskQueueBulkAddResponse> responseFuture = makeAsyncCall(
        "BulkAdd", bulkAddRequest, new TaskQueueBulkAddResponse());
    return new FutureAdapter<TaskQueueBulkAddResponse, List<TaskHandle>>(responseFuture) {
      @Override
      protected List<TaskHandle> wrap(TaskQueueBulkAddResponse bulkAddResponse) {
        if (bulkAddResponse.taskResultSize() != bulkAddRequest.addRequestSize()) {
            throw new InternalFailureException(
                String.format("expected %d results from BulkAdd(), got %d",
                    bulkAddRequest.addRequestSize(), bulkAddResponse.taskResultSize()));
        }

        List<TaskHandle> tasks = new ArrayList<TaskHandle>();
        RuntimeException taskqueueException = null;
        for (int i = 0; i < bulkAddResponse.taskResultSize(); ++i) {
          TaskQueueBulkAddResponse.TaskResult taskResult = bulkAddResponse.taskResults().get(i);
          TaskQueueAddRequest addRequest = bulkAddRequest.getAddRequest(i);
          TaskOptions options = taskOptionsList.get(i);

          if (taskResult.getResult() == TaskQueueServiceError.ErrorCode.OK.getValue()) {
            String taskName = options.getTaskName();
            if (taskResult.hasChosenTaskName()) {
View Full Code Here

            } catch (Exception e) {
                ThrowableUtil.wrapAndThrow(e);
            }
        } else if (service.equals(TASKQUEUE_SERVICE)
            && method.equals(BULK_ADD_METHOD)) {
            TaskQueueBulkAddRequest taskPb = new TaskQueueBulkAddRequest();
            taskPb.mergeFrom(requestBuf);
            TaskQueueBulkAddResponse responsePb =
                new TaskQueueBulkAddResponse();
            for (int i = 0; i < taskPb.addRequestSize(); i++) {
                tasks.add(taskPb.getAddRequest(i));
                responsePb.addTaskResult().setChosenTaskName(
                    "task" + String.valueOf(System.nanoTime()));
            }
            return responsePb.toByteArray();
        } else if (MEMCACHE_SERVICE.equals(service)) {
View Full Code Here

            } catch (Exception e) {
                ThrowableUtil.wrapAndThrow(e);
            }
        } else if (service.equals(TASKQUEUE_SERVICE)
            && method.equals(BULK_ADD_METHOD)) {
            TaskQueueBulkAddRequest taskPb = new TaskQueueBulkAddRequest();
            taskPb.mergeFrom(requestBuf);
            TaskQueueBulkAddResponse responsePb =
                new TaskQueueBulkAddResponse();
            for (int i = 0; i < taskPb.addRequestSize(); i++) {
                tasks.add(taskPb.getAddRequest(i));
                responsePb.addTaskResult().setChosenTaskName(
                    "task" + String.valueOf(System.nanoTime()));
            }
            return responsePb.toByteArray();
        } else if (MEMCACHE_SERVICE.equals(service)) {
View Full Code Here

            } catch (Exception e) {
                ThrowableUtil.wrapAndThrow(e);
            }
        } else if (service.equals(TASKQUEUE_SERVICE)
            && method.equals(BULK_ADD_METHOD)) {
            TaskQueueBulkAddRequest taskPb = new TaskQueueBulkAddRequest();
            taskPb.mergeFrom(requestBuf);
            TaskQueueBulkAddResponse responsePb =
                new TaskQueueBulkAddResponse();
            for (int i = 0; i < taskPb.addRequestSize(); i++) {
                tasks.add(taskPb.getAddRequest(i));
                responsePb.addTaskResult();
            }
            return responsePb.toByteArray();
        } else if (MEMCACHE_SERVICE.equals(service)) {
            if (SET_METHOD.equals(method)) {
View Full Code Here

TOP

Related Classes of com.google.appengine.api.taskqueue.TaskQueuePb.TaskQueueBulkAddRequest

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.