public void doPost()

in appengine-java8/taskqueues-pull/src/main/java/com/example/taskqueue/TaskqueueServlet.java [54:119]


  public void doPost(HttpServletRequest req, HttpServletResponse resp)
      throws IOException, ServletException {
    if (req.getParameter("addTask") != null) {
      String content = req.getParameter("content");
      String output =
          String.format(
              "Adding %d Tasks to the Task Queue with a payload of '%s'",
              numberOfTasksToAdd, content.toString());
      log.info(output.toString());

      // Add Tasks to Task Queue
      // [START get_queue]
      Queue q = QueueFactory.getQueue("pull-queue");
      // [END get_queue]
      if (!useTaggedTasks) {
        for (int i = 0; i < numberOfTasksToAdd; i++) {
          // [START add_task]
          q.add(
              TaskOptions.Builder.withMethod(TaskOptions.Method.PULL).payload(content.toString()));
          // [END add_task]
        }
      } else {
        for (int i = 0; i < numberOfTasksToAdd; i++) {
          // [START add_task_w_tag]
          q.add(
              TaskOptions.Builder.withMethod(TaskOptions.Method.PULL)
                  .payload(content.toString())
                  .tag("process".getBytes()));
          // [END add_task_w_tag]
        }
      }
      try {
        message = "Added " + numberOfTasksToAdd + " tasks to the task queue.";
        req.setAttribute("message", message);
        req.getRequestDispatcher("taskqueues-pull.jsp").forward(req, resp);
      } catch (ServletException e) {
        throw new ServletException("ServletException error: ", e);
      }
    } else {
      if (req.getParameter("leaseTask") != null) {
        output = String.format("Pulling %d Tasks from the Task Queue", numberOfTasksToLease);
        log.info(output.toString());

        // Pull tasks from the Task Queue and process them
        Queue q = QueueFactory.getQueue("pull-queue");
        if (!useTaggedTasks) {
          // [START lease_tasks]
          List<TaskHandle> tasks = q.leaseTasks(3600, TimeUnit.SECONDS, numberOfTasksToLease);
          // [END lease_tasks]
          message = processTasks(tasks, q);
        } else {
          // [START lease_tasks_by_tag]
          // Lease only tasks tagged with "process"
          List<TaskHandle> tasks =
              q.leaseTasksByTag(3600, TimeUnit.SECONDS, numberOfTasksToLease, "process");
          // You can also specify a tag to lease via LeaseOptions passed to leaseTasks.
          // [END lease_tasks_by_tag]
          message = processTasks(tasks, q);
        }
        req.setAttribute("message", message);
        req.getRequestDispatcher("taskqueues-pull.jsp").forward(req, resp);
      } else {
        resp.sendRedirect("/");
      }
    }
  }