Syntax
newrelic.agent.accept_distributed_trace_payload(payload, transport_type='HTTP')This method is used for accepting the payloads used to connect transactions within a distributed trace.
Requirements
Python agent version 4.2.0.100 or higher.
Caution
This API was deprecated in version 5.6.0.135 and completely removed in version 11.0.0. Please use accept_distributed_trace_headers instead.
Distributed tracing must be enabled.
Description
For context on how to use this call, first read its partner API call create_distributed_trace_payload and Enable distributed tracing with agent APIs.
This call is used to link transactions by parsing the distributed tracing payloads generated by create_distributed_trace_payload.
Parameters
Parameter  | Description  | 
|---|---|
 dictionary or string  | Required. The payload to be accepted.  | 
 string  | Optional, defaults to   | 
Return values
When successful, returns True.
When unsuccessful, returns False. Accepting a payload can fail for several reasons:
- The current transaction is not enabled.
 - Accept was called outside the scope of a transaction.
 - The payload is empty.
 - Distributed tracing is not enabled.
 accept_distributed_trace_payloadwas called aftercreate_distributed_trace_payload, and not before.accept_distributed_trace_payloadwas called multiple times in a single transaction.- The payload could not be parsed.
 - The payload was sent from an untrusted account.
 
Examples
Accept a distributed trace payload inside a background task
An example of using accept_distributed_trace_payload in a background task:
@newrelic.agent.background_task()def handle(request):    payload = request.headers.get('newrelic')    if payload:        newrelic.agent.accept_distributed_trace_payload(payload)
    _do_some_work()Consume from a queue
An example of using accept_distributed_trace_payload and creating a background task for each message:
import newrelic.agentnewrelic.agent.initialize('newrelic.ini')application = newrelic.agent.register_application(timeout=10.0)
def main(queue):    for message in queue.consume():        with newrelic.agent.BackgroundTask(application, 'Queue Consume'):            payload = message.headers.get('newrelic')            newrelic.agent.accept_distributed_trace_payload(payload,                    transport_type='Queue')            _process_message(message)