-
Notifications
You must be signed in to change notification settings - Fork 14
Parallel Requests
Arun Prakash edited this page Sep 21, 2025
·
4 revisions
wordpress_client
offers a built‑in way to execute requests in parallel via ParallelWordpress
.
What you get:
- Parallel list/create/update/delete/retrieve helpers on any interface
- Stable ordering by page index for batch operations
- Simple utilities to merge results into a single iterable
To fetch first 30 pages in parallel:
final responses = await client.parallel.list(
interface: client.posts,
requestBuilder: () {
return List.generate(
30,
(index) => ParallelRequest(
page: index + 1,
request: ListPostRequest(
perPage: 15,
page: index + 1,
),
),
);
},
);
The response type is Iterable<ParallelIterableResult<Post>>
, where each item contains the page
and the results
for that page.
Need a single ordered sequence? Use the merge helper:
final merged = await client.parallel
.list<Post, ListPostRequest>(
interface: client.posts,
requestBuilder: () => /* as above */,
)
.merge(); // Iterable<Post>
- Create:
client.parallel.create<T, R>
- Update:
client.parallel.update<T, R>
- Delete:
client.parallel.delete<R>
(returnsParallelResult<bool>
) - Retrieve:
client.parallel.retrieve<T, R>
All helpers accept optional transformers and exception handlers for fine‑grained control.
This depends on your site and network. Parallel often halves end‑to‑end time versus sequential fetching for large page ranges.
Starting Parallel...
Parallel Time Taken: 3667 ms
Starting Sequential...
Sequential Time Taken: 7437 ms
Difference: 3770 ms (50.69%)
Tip: Converting to a single stream is also supported via
parallel_wordpress/extensions/parallel_result_exts.dart
.