code: @Override
      public PollForTaskResult pollForTask(PollForTaskRequest request) {
          request = beforeClientExecution(request);
          return executePollForTask(request);
      }
docs: <p>
  Task runners call <code>PollForTask</code> to receive a task to perform from AWS Data Pipeline. The task runner
  specifies which tasks it can perform by setting a value for the <code>workerGroup</code> parameter. The task
  returned can come from any of the pipelines that match the <code>workerGroup</code> value passed in by the task
  runner and that was launched using the IAM user credentials specified by the task runner.
  </p>
  <p>
  If tasks are ready in the work queue, <code>PollForTask</code> returns a response immediately. If no tasks are
  available in the queue, <code>PollForTask</code> uses long-polling and holds on to a poll connection for up to a
  90 seconds, during which time the first newly scheduled task is handed to the task runner. To accomodate this,
  set the socket timeout in your task runner to 90 seconds. The task runner should not call
  <code>PollForTask</code> again on the same <code>workerGroup</code> until it receives a response, and this can
  take up to 90 seconds.
  </p>
  
  @param pollForTaskRequest
  Contains the parameters for PollForTask.
  @return Result of the PollForTask operation returned by the service.
  @throws InternalServiceErrorException
  An internal service error occurred.
  @throws InvalidRequestException
  The request was not valid. Verify that your request was properly formatted, that the signature was
  generated with the correct credentials, and that you haven't exceeded any of the service limits for your
  account.
  @throws TaskNotFoundException
  The specified task was not found.
  @sample DataPipeline.PollForTask
  @see <a href="http://docs.aws.amazon.com/goto/WebAPI/datapipeline-2012-10-29/PollForTask" target="_top">AWS API
  Documentation</a>