For general information on how the Python agent API calls relate to each other, see the API guide.

Marks a transaction as a "background task."


This call classifies a transaction as a "background task." Transactions marked as background tasks are visible in the New Relic APM UI as non-web transactions. You can also use this call to reclassify a monitored background task as a web transaction, by passing the False parameter.

This API reclassifies an existing transaction as a background task transaction. If there is no existing transaction, this call will not work.

The "background task" designation is typically used for non-web transactions (for example: worker processes, job-based systems, or standalone scripts), but you may also want to designate a web transaction as a "background task" to separate it from your other application transactions. For example, you have a long-running web transaction which is skewing your Apdex score or average response time.

The agent identifies a monitored transaction as a web transaction or background task at the start of the transaction, based on which type of entry-point wrapper initiated the monitoring. To create a background task initially (instead of marking a web transaction as a background task), you would use background_task. For a tutorial on how to create background tasks, see Monitor non-web tasks, scripts, and functions.

You can also mark a web transaction as a background task in the WSGI environ dictionary. To do so, set the newrelic.set_background_task key for the specific request in the WSGI environ dictionary passed by the WSGI server in your target WSGI app.


Parameter Description



Optional. Default value is True. Use False to instead classify the transaction to a web transaction.

Return value(s)



Setting web request to background task

An example of setting a web transaction to a non-web background task:

def wsgi_app(environ, start_response):

Reclassifying a background task as a web transaction

Sometimes, you may want to instead classify a background task as a web transaction, so you can see it with your other application web transactions in the New Relic UI. To do that, add this call where a monitored background task executes:

import newrelic.agent

For more help

Recommendations for learning more: