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

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


    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()) {
              taskName = taskResult.getChosenTaskName();
            }
            TaskOptions taskResultOptions = new TaskOptions(options);
            taskResultOptions.taskName(taskName).payload(addRequest.getBodyAsBytes());
            TaskHandle handle = new TaskHandle(taskResultOptions, queueName);
            tasks.add(handle.etaUsec(addRequest.getEtaUsec()));
          } else if (taskResult.getResult() != TaskQueueServiceError.ErrorCode.SKIPPED.getValue()) {
            if (taskqueueException == null ||
                taskqueueException instanceof TaskAlreadyExistsException) {
              int result = taskResult.getResult();
              String detail = (result == TaskQueueServiceError.ErrorCode.UNKNOWN_QUEUE.getValue())
View Full Code Here


    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()) {
              taskName = taskResult.getChosenTaskName();
            }
            TaskOptions taskResultOptions = new TaskOptions(options);
            taskResultOptions.taskName(taskName).payload(addRequest.getBodyAsBytes());
            TaskHandle handle = new TaskHandle(taskResultOptions, queueName);
            tasks.add(handle.etaUsec(addRequest.getEtaUsec()));
          } else if (taskResult.getResult() != TaskQueueServiceError.ErrorCode.SKIPPED.getValue()) {
            if (taskqueueException == null ||
                taskqueueException instanceof TaskAlreadyExistsException) {
              taskqueueException = QueueApiHelper.translateError(taskResult.getResult(),
                                                                 options.getTaskName());
View Full Code Here

    public void taskQueueForDefaultQueue() throws Exception {
        Queue queue = QueueFactory.getDefaultQueue();
        queue
            .add(TaskOptions.Builder.withUrl("/tqHandler").param("key", "aaa"));
        assertThat(tester.tasks.size(), is(1));
        TaskQueueAddRequest task = tester.tasks.get(0);
        assertThat(task.getUrl(), is("/tqHandler"));
        assertThat(task.getBody(), is("key=aaa"));
    }
View Full Code Here

    public void taskQueueForNamedQueue() throws Exception {
        Queue queue = QueueFactory.getQueue("test-queue");
        queue
            .add(TaskOptions.Builder.withUrl("/tqHandler").param("key", "aaa"));
        assertThat(tester.tasks.size(), is(1));
        TaskQueueAddRequest task = tester.tasks.get(0);
        assertThat(task.getUrl(), is("/tqHandler"));
        assertThat(task.getBody(), is("key=aaa"));
    }
View Full Code Here

        assertThat(gtx.localTransaction.isActive(), is(false));
        assertThat(GlobalTransaction.getActiveTransactions().size(), is(0));
        assertThat(tester.count("Hoge"), is(1));
        String encodedKey = KeyFactory.keyToString(gtx.globalTransactionKey);
        assertThat(tester.tasks.size(), is(1));
        TaskQueueAddRequest task = tester.tasks.get(0);
        assertThat(task.getQueueName(), is(GlobalTransaction.QUEUE_NAME));
        assertThat(task.getUrl(), is(GlobalTransactionServlet.SERVLET_PATH));
        assertThat(task.getBody(), is(GlobalTransactionServlet.COMMAND_NAME
            + "="
            + GlobalTransactionServlet.ROLLFORWARD_COMMAND
            + "&"
            + GlobalTransactionServlet.KEY_NAME
            + "="
View Full Code Here

        String encodedKey = Datastore.keyToString(gtx.globalTransactionKey);
        gtx.rollbackAsyncGlobalTransaction();
        assertThat(gtx.isActive(), is(false));
        assertThat(GlobalTransaction.getActiveTransactions().size(), is(0));
        assertThat(tester.tasks.size(), is(1));
        TaskQueueAddRequest task = tester.tasks.get(0);
        assertThat(task.getQueueName(), is(GlobalTransaction.QUEUE_NAME));
        assertThat(task.getUrl(), is(GlobalTransactionServlet.SERVLET_PATH));
        assertThat(task.getBody(), is(GlobalTransactionServlet.COMMAND_NAME
            + "="
            + GlobalTransactionServlet.ROLLBACK_COMMAND
            + "&"
            + GlobalTransactionServlet.KEY_NAME
            + "="
View Full Code Here

        String encodedKey = KeyFactory.keyToString(gtx.globalTransactionKey);
        gtx.rollbackAsyncGlobalTransaction();
        assertThat(gtx.isActive(), is(false));
        assertThat(GlobalTransaction.getActiveTransactions().size(), is(0));
        assertThat(tester.tasks.size(), is(1));
        TaskQueueAddRequest task = tester.tasks.get(0);
        assertThat(task.getQueueName(), is(GlobalTransaction.QUEUE_NAME));
        assertThat(task.getUrl(), is(GlobalTransactionServlet.SERVLET_PATH));
        assertThat(task.getBody(), is(GlobalTransactionServlet.COMMAND_NAME
            + "="
            + GlobalTransactionServlet.ROLLBACK_COMMAND
            + "&"
            + GlobalTransactionServlet.KEY_NAME
            + "="
View Full Code Here

        GlobalTransaction.submitRollForwardJob(
            gtx.localTransaction,
            gtx.globalTransactionKey,
            GlobalTransaction.ROLL_FORWARD_DELAY);
        assertThat(tester.tasks.size(), is(1));
        TaskQueueAddRequest task = tester.tasks.get(0);
        assertThat(task.getQueueName(), is(GlobalTransaction.QUEUE_NAME));
        assertThat(task.getUrl(), is(GlobalTransactionServlet.SERVLET_PATH));
        assertThat(task.getBody(), is(GlobalTransactionServlet.COMMAND_NAME
            + "="
            + GlobalTransactionServlet.ROLLFORWARD_COMMAND
            + "&"
            + GlobalTransactionServlet.KEY_NAME
            + "="
View Full Code Here

    public void submitRollbackJob() throws Exception {
        gtx.getAsMap(KeyFactory.createKey("Hoge", 1));
        String encodedKey = KeyFactory.keyToString(gtx.globalTransactionKey);
        GlobalTransaction.submitRollbackJob(gtx.globalTransactionKey);
        assertThat(tester.tasks.size(), is(1));
        TaskQueueAddRequest task = tester.tasks.get(0);
        assertThat(task.getQueueName(), is(GlobalTransaction.QUEUE_NAME));
        assertThat(task.getUrl(), is(GlobalTransactionServlet.SERVLET_PATH));
        assertThat(task.getBody(), is(GlobalTransactionServlet.COMMAND_NAME
            + "="
            + GlobalTransactionServlet.ROLLBACK_COMMAND
            + "&"
            + GlobalTransactionServlet.KEY_NAME
            + "="
View Full Code Here

        int before = tester.tasks.size();
        tester.param("minutes", Datastore.keyToString(minutesKey));
        tester.start(PATH);
        int after = tester.tasks.size();
        assertThat("Task が一件追加される", after, is(before + 1));
        TaskQueueAddRequest task = tester.tasks.get(0);
        assertThat(
            "access-log キューにTask が追加される",
            task.getQueueName(),
            is("access-log"));
        assertThat(
            "Task にminutesKey パラメータが設定される",
            task.getBody().startsWith("minutesKey="),
            is(true));
    }
View Full Code Here

TOP

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

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.