Batch operations
To demonstrate how batching works, we are going to rebuild the way our product JsonImporter
plugin processes the data it retrieves. Currently, we simply load all the values into an array of objects and loop through each, saving them to the database. So, if there are 100,000 products in the JSON response, we might get into trouble with this approach. To be fair, if the remote provider has so many products, it usually provides a paginated way of requesting them by passing an offset and a limit. This keeps the payloads smaller (which is good for both communicating servers) and makes processing easier. For now, we’ll go with the assumption that the number of returned products is large, but not so large as to pose problems with communication or with the ability of PHP to store them in memory.
Moreover, while illustrating the Batch API, we will also perform an operation we “forgot” in Chapter 7, Your Own Custom Entity and Plugin Types. During the...