Long Running API Requests#

To optimise memory utilization and performance, the system has been configured so that the API server will manage workers with the following defaults:

  • after receiving a restart signal, workers have 100 minutes to finish serving requests

  • a random restart interval of between 0 and 600 requests per worker (4 workers per node, 4 nodes in a cluster)

API best practices is to schedule and then poll transactions, since long running requests can affect recycling. In other words, preferably short requests and then poll.

Polling Example#

To retrieve the status of a given transaction:

GET /api/tool/Transaction/[pkid]/poll/?format=json

The response contains essential status of the transaction, for example:

{
    [pkid]: {
        status: "Success",
        href: "/api/tool/Transaction/[pkid]",
        description: "Name:RDP-auser1857 Description:RD for auser1857"
    }
}

Refer to the topics Poll Transactions and Example of an Asynchronous Mutator Transaction with nowait=true in the API Guide.