NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #4229 most downloaded on pub.dev
This dart package ensure your pack of async tasks execute in order, one after the other.
Last release 6 months ago
05 Apr 2026
Release timing varies
gaps range from 3 weeks to 1.3 years
Nearly every release is documented
notes for 9 of 10 stable releases
Nothing withdrawn
no release was ever pulled
4 years old
13 releases · first in 2022
One column per quarter.
`addJob` now returns a `Future` — await the result of any individual job without relying on listeners. Works alongside previousResult without conflict
addJob now returns a Future — await the result of any individual job without relying on listeners. Works alongside previousResult without conflict.retryTime times. Manual retry() still works for custom logic.onError callback — dedicated error handler on AsyncQueue and AsyncQueue.autoStart constructors, called with (error, jobLabel) on each failure.addJob accepts a priority parameter (default 0). Higher priority jobs are placed closer to the front. Same-priority jobs maintain FIFO order.pause() halts processing after the current job finishes without losing queued jobs. resume() continues. Adds isPaused getter and queuePaused/queueResumed events.addJob accepts a retryDelay Duration to wait between retry attempts. Works with both auto-retry and manual retry().addJob accepts a timeout Duration. Jobs exceeding the timeout throw TimeoutException, triggering auto-retry like any other exception.isRunning getter — exposes queue running state.QueueEventType.jobError, QueueEventType.queuePaused, QueueEventType.queueResumed eventsretry() is called on an empty queue_previousResult leaking across separate start() runsaddJobThrow label parameter type from String? to Object? to match addJob_isForcedStop flag now properly cleared after start() loop exits instead of immediately in stop()AsyncQueueInterface signatures with actual implementationlist(), getJobInfo()) from source and interfaceprint() calls from testsaddJob returning Future (result, chaining, autoStart, previousResult, closed queue)AsyncQueue.autoStart() (execution order, late adds, events, stop)onError callback, priority ordering, pause/resume, retry delay, and job timeoutasync_queue_info_test.dart with actual assertionsNothing published for this version
fix wrong job label on QueueEventType.newJobAdded
QueueEventType.newJobAddedfix issue that queue listener return wrong job label
add allowDuplicate default to true.
allowDuplicate default to true.throwIfDuplicate default to false.AsyncJob = Function(PreviousResult previousResult). This allows you to access the previous job's result when adding new job.list, getJobInfo, and addNode from version 2.0.0-dev.1 as not needed.AsyncNodeJobInfoString to ObjectCurrentJobUpdater to notify every time a job is runningchange job label type from String to Object
String to ObjectCurrentJobUpdater to notify every time a job is runningadd allowDuplicate default to true.
allowDuplicate default to true.throwIfDuplicate default to false.AsyncJob = Function(PreviousResult previousResult). This allows you to access the previous job's result when adding new job.list, getJobInfo, and addNode from version 2.0.0-dev.1 as not needed.AsyncNodeJobInfooption to add the job that failed back in to the queue. (last position)
option to add label and description when adding job
label and description when adding jobretryTime = -1 will make the job retry infinitely until it success. You still have to explicitly call retry. Be careful when using this option.add stop() to stop and remove all remaining jobs in the queue
stop() to stop and remove all remaining jobs in the queueretry() to retry the job, default to 1 time, but user can set as many time as they want{bool forceStop = false} in close() since we now have stop methodadd Flutter use cases into README
[breaking change] remove beforeListener and afterListener. One listener will emit event with type.
beforeListener and afterListener. One listener will emit event with type.close({bool forceStop = false}) close the queue so that no more job can be added. [forceStop] if true, all remain jobs will be canceledaddJobThrow Add new job in to the queue if the queue is closed, throw [ClosedQueueException](Normal Queue) Add multiple jobs into queue before firing
Your coding agent can read these notes before it upgrades. Set up the MCP server →