Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Commercetools Async Pool Laravel Package

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.

View on GitHub
Deep Wiki
Context7

commercetools-async-pool

Batch-Processing of a pool asynchronous commercetools requests.

Introdction

Commercetools suggests that you use asynchronous requests instead of sequential ones but the PHP SDK makes it not very easy:

  1. Promises for Client::executeAsync works on the raw guzzle response, not the "requested object".
  2. Guzzle promise-chaining/forwarding and the AbstractApiResponse from commercetools are not compatible.

So i created a helping pool of async requests. Please review the following information.

Installation

composer require bestit/commercetools-async-pool

API and Usage

$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!

Future

  • More Unittests
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
adachsoft/php-code-style