- Job execution timeout constraint (#50)
- Exponential backoff with max delay (#226)
- Better threading configuration for Queue and Manager (#228) (#229) (230)
- Jobs can be enqueue from manager with
.enqueue(JobInfo)
(#231)
- Job status listener (#217)
- Allow a queue to run multiple jobs in parallel (#215)
- Rename synchronous to initInBackground (#213)
- Rename group() to parallel() (#212)
- Better control on running for duplicate job constraint (#219)
- Add no logger by default (#211)
- Swift 5 support. Source was already compatible 🙌 (#206)
- Drop Linux support (#206)
- SwiftQueue is now available on Linux (#189)
- Bump Reachability to 4.3.0 (#190)
- Revise charging constraint implementation (#177)
- Swift 4.2 and Xcode 10 support (#181) (#182) (#187)
- Bump Reachability to 4.2.1 for carthage (#174)
- Bump Reachability and change origin for SPM (#175)
- Bump Rechability for pod #172
- Expose
count
insideSwiftQueueManager
(#160)
- Change SPM dependency for reachability to original #167
- Update copyrights (#162)
- Bump DEPS (#161) (#163) (#165) (#168)
- Remove deprecated methods (#156)
- Prevent missing CFBundleVersion (#153)
SwiftQueueManager
need to be built withSwiftQueueManagerBuilder
(#126)- Custom serializer and switch to
codable
by default (#115) - Minimum version required is
Swift 3.2
- Add a persister by default to avoid having
persist(required: true)
but nopersister
(#119)
- Expose
isSuspended
fromSwiftQueueManager
(#145) - Revise JobInfo and make it conform to
Codable
protocol (#117) (#120)
- Charging constraint (#123)
- Deserialize tasks in background (#112)
- Add internal logger (#105)
Cleanup JobInfo structure
- Fix constraint does not properly cancel the job and execution flow should stop (#113)
- Execution flow does not stop immediately after a constraint not satisfied (#113)
- Parsing error not forwarded and not reported with the logger (#121)
- Parsing error not reported and prevent the job to be serialized (#122)
- Update for Swift 3.3 and 4.1 (#110) (#111) (#107)
- Add proper implementation of support compactMap (#116)
- Fix compatibility with Swift 3.2 (#100)
- Fix warning for Swift 4.1 (#102)
- Change
JobCreator.create
signature (#94)- Return type is no longer optional
SwiftQueueManager
only accept 1 singleJobCreator
- This is to avoid unregistered handler or scheduling job with no
JobCreator
associates - The user will have to deal with unknown handler on his side
- Origin error is now forward to completion block (#88)
- Change signature of Limit(Int) to Limit(Double)
- Delay not waiting for the remaining time (#99)
- Deadline now cancel the job properly (#98)
- Fix calling
done
after termination will remove the lastError (#97) - Breaking support for Swift 3.2 (#75)
- Avoid crash when scheduling a terminated job (#92)
- Performance issue when overriding a job (#73)
- Update documentation
- Change Error type to follow enum pattern (#68)
TaskAlreadyExist
->SwiftQueueError.Duplicate
DeadlineError
->SwiftQueueError.Deadline
Canceled
->SwiftQueueError.Canceled
- Performance improvement in for-loops
SwiftQueue
has been renamedSqOperationQueue
SwiftQueueJob
->SqOperation
JobBuilder
has moved to its own class- SwiftQueue.swift reference all public protocols
- Support
BUCK
build
- Remove unavailable methods (#71)
func retry(Int)
func periodic(Int, TimeInterval)
- Fix an issue where a periodic job will not be re-scheduled (#63)
- Validate dictionary args only if persistence is required (#61)
- Make unavailable methods crash if called #64
- Raise warning if something went wrong during the deserialization (#58)
Develop 1.4.0 (#52)
- Validate argument to avoid empty strings
- Validate JSON argument
- JobBuilder.retry(Limit)
- JobBuilder.periodic(Limit, TimeInterval)
- Allow overriding previous job for SingleInstance constraint (#38)
- Add cancel with uuid (#42)
- Fix Swiftlint warnings (#36)
- Fix readme documentation (#40)
- Setup danger (#31)
- Support travis cache builds (#39)
- Fix crash in exponential retry
- Fix exponential retry not reset after a success run
Develop 1.3.0 Re-write 90% of the code (#22)
- Scheduling a job without a creator will throw an error (Assertion)
- Replace Any params type to [String: Any] (#20)
- Callback result now use enum to avoid passing nil error as success (#26)
- onRemove will forward JobCompletion (#32)
- Remove delay(inSecond) use delay(time) instead
- Improve documentation and publish (#24)
- Constraints should be public (#25)
- Add assertion to validate the [String: Any] when serialize
- Job is now immediately canceled when the deadline is reached
- Add support for Swift Package Manager
- Fix job retained longer after cancellation
- Job constraint error should not call onRetry
- if Reachability throw error when starting the notifier, call onRemove
- UniqueUUID constraint will also be checked for same name in non SwiftQueueJob
- Fix retention issue
- Each constraints will be defined in it's own file
- Each job will own an instance of all the constrains
- Remove throw in Run method to avoid confusion with onError callback
- User will need to keep a strong reference to SwiftQueueManager
Support all targets when using carthage
- Delay by TimeInterval
- Reschedule and run immediately when delay is set to 0
- Job not delayed properly
- Crash when delaying the job with a high value
- Add delay to retry()
- Pause and restart will match behaviour of OperationQueue to avoid job running 2 times
- First stable release