


How to use CompletableFuture to ensure the order consistency of batch interface request results?
Apr 19, 2025 pm 08:36 PMEfficiently concurrent processing of batch interface requests: Ensure the order of results is consistent
Concurrent calls to multiple third-party interfaces can significantly improve efficiency when processing large amounts of data efficiently. However, simple multithreaded concurrency may cause the order of return results to be inconsistent and does not correspond to the original data list. This article will introduce how to solve this problem using Java's CompletableFuture
to ensure that the interface call results are exactly the same as the original data order.
question:
Suppose that more than 1000 third-party interfaces need to be called concurrently and processed to return results. If multiple threads are started using a simple for
loop, the order of interface calls cannot be guaranteed, and the order of the final results does not match the original data list. Some sample code uses CompletableFuture.runAsync
to perform asynchronous tasks, but ignores the collection of results and the maintenance of sequentiality.
Solution:
In order to ensure that the order of results is consistent with the original data list, the key is to use CompletableFuture.supplyAsync
instead of CompletableFuture.runAsync
. supplyAsync
method can return a result, while runAsync
does not return a value. Return the results of each interface call through supplyAsync
, and then collect the results into the list by streaming processing to ensure that the order of the results is consistent with the original data list.
Improved code:
public static void main(String[] args) { List<string> dataList = new ArrayList(); // Original data list// ... Initialize dataList ... ExecutorService executorService = new ThreadPoolExecutor( //The number of core threads Runtime.getRuntime().availableProcessors(), //Maximum number of threads Runtime.getRuntime().availableProcessors() * 2, //Thread survival time 60L, TimeUnit.SECONDS, new LinkedBlockingQueue(), new ThreadPoolExecutor.CallerRunsPolicy()); List <completablefuture> > futures = new ArrayList(); for (String data : dataList) { futures.add(CompletableFuture.supplyAsync(() -> { logger.info("Start execution of asynchronous thread->>" data); // Call the interface and pass in data //Judge whether data matches based on the interface return value//Return the processed result return processData(data); // Process data and return the result}, executorService)); // Use a custom thread pool} //After processing logic of all requests completed, CompletableFuture.allOf(futures.toArray(new CompletableFuture[0])).thenRun(() -> { List<string> results = futures.stream() .map(CompletableFuture::join) .collect(Collectors.toList()); logger.info("Thread execution is completed: {}", JSON.toJSONString(results)); // Call to send SMS}).thenRun(() -> executorService.shutdown()); } // Method of processing data, modify private static String processData(String data) { // ... Interface call and data processing logic... return data "processed result"; }</string></completablefuture></string>
By storing the results of each CompletableFuture
in the futures
list and collecting the results at the end using futures.stream().map(CompletableFuture::join).collect(Collectors.toList())
, the result order is ensured to be consistent with the original data list. CompletableFuture::join
method blocks until the result of CompletableFuture
is obtained. This effectively solves the problem of inconsistent results in the original code.
The above is the detailed content of How to use CompletableFuture to ensure the order consistency of batch interface request results?. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

As the market conditions pick up, more and more smart investors have begun to quietly increase their positions in the currency circle. Many people are wondering what makes them take decisively when most people wait and see? This article will analyze current trends through on-chain data to help readers understand the logic of smart funds, so as to better grasp the next round of potential wealth growth opportunities.

The pattern in the public chain field shows a trend of "one super, many strong ones, and a hundred flowers blooming". Ethereum is still leading with its ecological moat, while Solana, Avalanche and others are challenging performance. Meanwhile, Polkadot, Cosmos, which focuses on interoperability, and Chainlink, which is a critical infrastructure, form a future picture of multiple chains coexisting. For users and developers, choosing which platform is no longer a single choice, but requires a trade-off between performance, cost, security and ecological maturity based on specific needs.

Cardano's Alonzo hard fork upgrade has successfully transformed Cardano from a value transfer network to a fully functional smart contract platform by introducing the Plutus smart contract platform. 1. Plutus is based on Haskell language, with powerful functionality, enhanced security and predictable cost model; 2. After the upgrade, dApps deployment is accelerated, the developer community is expanded, and the DeFi and NFT ecosystems are developing rapidly; 3. Looking ahead to 2025, the Cardano ecosystem will be more mature and diverse. Combined with the improvement of scalability in the Basho era, the enhancement of cross-chain interoperability, the evolution of decentralized governance in the Voltaire era, and the promotion of mainstream adoption by enterprise-level applications, Cardano has

Recently, Bitcoin hit a new high, Dogecoin ushered in a strong rebound and the market was hot. Next, we will analyze the market drivers and technical aspects to determine whether Ethereum still has opportunities to follow the rise.

The five most valuable stablecoins in 2025 are Tether (USDT), USD Coin (USDC), Dai (DAI), First Digital USD (FDUSD) and TrueUSD (TUSD).

Stablecoins are crypto assets that maintain price stability by anchoring fiat currencies such as the US dollar. They are mainly divided into three categories: fiat currency collateral, crypto asset collateral and algorithmic stablecoins. 1. USDT is issued by Tether and is the stablecoin with the largest market value and the highest liquidity. 2. USDC is released by the Centre alliance launched by Circle and Coinbase, and is known for its transparency and compliance. 3. DAI is generated by MakerDAO through over-collateralization of crypto assets and is the core currency in the DeFi field. 4. BUSD was launched in partnership with Paxos, and is regulated by the United States but has been discontinued. 5. TUSD achieves high transparency reserve verification through third-party escrow accounts. Users can use centralized exchanges such as Binance, Ouyi, and Huobi

At a time when the digital economy wave swept the world, cryptocurrencies have become the focus of attention from all walks of life with their unique decentralization and transparency. From the initial geek niche experiment to the current financial landscape with a market value of trillions, the evolution of cryptocurrencies is amazing. It not only brings innovations in underlying technologies, but also gives birth to countless innovative applications, which are profoundly affecting all aspects of finance, technology and even social governance.

The top 20 most promising crypto assets in 2025 include BTC, ETH, SOL, etc., mainly covering multiple tracks such as public chains, Layer 2, AI, DeFi and gaming. 1.BTC continues to lead the market with its digital yellow metallicity and popularization of ETFs; 2.ETH consolidates the ecosystem due to its position and upgrade of smart contract platforms; 3.SOL stands out with high-performance public chains and developer communities; 4.LINK is the leader in oracle connecting real data; 5.RNDR builds decentralized GPU network service AI needs; 6.IMX focuses on Web3 games to provide a zero-gas-free environment; 7.ARB leads with mature Layer 2 technology and huge DeFi ecosystem; 8.MATIC has become the value layer of Ethereum through multi-chain evolution
