bestit/commercetools-async-pool
Laravel-friendly async pool for commercetools PHP SDK requests. Schedule, batch, and execute API calls concurrently with configurable limits, retries, and callbacks, helping speed up imports, sync jobs, and background processing while keeping resource usage under control.
Batch-Processing of a pool asynchronous commercetools requests.
Commercetools suggests that you use asynchronous requests instead of sequential ones but the PHP SDK makes it not very easy:
So i created a helping pool of async requests. Please review the following information.
composer require bestit/commercetools-async-pool
$pool = new Pool($this->getClient());
$pool->addPromise(ProductTypeByIdGetRequest::ofId('example')).then(
// Success
function(ProductType $productType) use ($userdata) {
echo $productType->getId();
},
// optional error callback
function(ErrorResponse $error) {
echo $error->getStatusCode();
}
);
//.then(/* chained callbacks */)
//.then()
// ....
// Gets flushed automatically, if we overflow the tick rate from the constructor.
$pool->flush();
But beware, do not forget that the callbacks are happening asynchronous! That is no sequential PHP anymore!
How can I help you explore Laravel packages today?