Consider these guidelines when using
BatchJobService
:
- For better throughput, fewer larger jobs is preferred over many smaller
jobs. It is recommended to add no more than 1,000 operations per
AddBatchJobOperationsRequest
and use thesequence_token
to upload the rest of the operations to the same job. - When submitting multiple concurrent jobs for the same account, try to reduce
the likelihood of jobs operating on the same objects at the same time, while
maintaining large job sizes. Many unfinished jobs (with status of
RUNNING
) that try to mutate the same set of objects may lead to deadlock-like conditions resulting in severe slow-down and even job failures. - Don't submit multiple operations that mutate the same object in the same job. The result will be unpredictable if you do so.
- For better throughput, order uploaded operations by operation type. For example, if your job contains operations to add campaigns, ad groups, and ad group criteria, order the operations in your upload so that all of the campaign operations are first, followed by all of the ad group operations, and finally all ad group criterion operations.
- Do not poll the job status too frequently or you will risk hitting rate limit errors.
- The results order will be the same as the upload order for batch processing.
- When retrieving Batch results, the best practice is to cap at 1,000 results per page. Note that it is possible that the results returned per page may be cut to a smaller set on the server-side due to load or other factors.
Limitations
- Each
BatchJob
supports up to one million operations. - Each account can have up to 100 active or pending jobs at the same time.
- Pending jobs older than 7 days are automatically removed.