Task runners call poll_for_task
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
workerGroup
parameter. The task returned can come from any of the
pipelines that match the workerGroup
value passed in by the task
runner and that was launched using the IAM user credentials specified by
the task runner.
If tasks are ready in the work queue,
poll_for_task
returns a response
immediately. If no tasks are available in the queue,
poll_for_task
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
poll_for_task
again on the same
workerGroup
until it receives a response, and this can take up to 90
seconds.
datapipeline_poll_for_task(workerGroup, hostname, instanceIdentity)
[required] The type of task the task runner is configured to accept and process.
The worker group is set as a field on objects in the pipeline when they
are created. You can only specify a single value for workerGroup
in
the call to poll_for_task
. There are no
wildcard values permitted in workerGroup
; the string must be an exact,
case-sensitive, match.
The public DNS name of the calling task runner.
Identity information for the EC2 instance that is hosting the task
runner. You can get this value from the instance using
http://169.254.169.254/latest/meta-data/instance-id
. For more
information, see Instance Metadata
in the Amazon Elastic Compute Cloud User Guide. Passing in this value
proves that your task runner is running on an EC2 instance, and ensures
the proper AWS Data Pipeline service charges are applied to your
pipeline.
A list with the following syntax:
list( taskObject = list( taskId = "string", pipelineId = "string", attemptId = "string", objects = list( list( id = "string", name = "string", fields = list( list( key = "string", stringValue = "string", refValue = "string" ) ) ) ) ) )
svc$poll_for_task( workerGroup = "string", hostname = "string", instanceIdentity = list( document = "string", signature = "string" ) )