Releases: general-CbIC/poolex
Releases · general-CbIC/poolex
[0.6.0] Reworked implementations configuration
Changed
- [INCOMPATIBLE] Changed approach to configuring custom implementations for queues of workers and callers.
-
Reasons: Avoid application configuration
-
Now for the configuration you need to use the initialization parameters instead of the
Application
config.# Before import Config config :poolex, callers_impl: SomeCallersImpl, busy_workers_impl: SomeBusyWorkersImpl, idle_workers_impl: SomeIdleWorkersImpl # After Poolex.child_spec( pool_id: :some_pool, worker_module: SomeWorker, workers_count: 10, waiting_callers_impl: SomeCallersImpl, busy_workers_impl: SomeBusyWorkersImpl, idle_workers_impl: SomeIdleWorkersImpl )
-
[0.5.1] Improved documentation
Added
- [Docs] Simple migration guide from
:poolboy
Fixed
- [Docs] Fix missing
Poolex.State.t()
on docs generating (issue)
[0.5.0] Rework pool initialization
Changed
- The default value of the parameter
:worker_start_fun
changed from:start
to:start_link
, since the second value is used more often. - [INCOMPATIBLE] Reworked pool launch functions
start
andstart_link
-
First argument
pool_id
moved topoolex_options
under required key:pool_id
. So the arity of both functions has changed to1
.# Before Poolex.start(:my_pool, worker_module: Agent, workers_count: 5) # After Poolex.start(pool_id: :my_pool, worker_module: Agent, workers_count: 5)
-
child_spec/1
was redefined to support:pool_id
key inpoolex_options
. Now the pool can be added to the supervisor tree in a more convenient way.children = [ Poolex.child_spec(pool_id: :worker_pool_1, worker_module: SomeWorker, workers_count: 5), # or in another way {Poolex, [pool_id: :worker_pool_2, worker_module: SomeOtherWorker, workers_count: 5]} ] Supervisor.start_link(children, strategy: :one_for_one)
-
[0.4.0] Overflow feature
Added
- Overflow feature. Example of use
- Speeding up CI by adding dialyzer PLT files caches.
Fixed
- Fix links in hex documentation.
- Added missing spec for
get_debug_info/1
.
0.3.0
Added
- The ability to set your own implementations for
workers
andcallers
. Read more about it - New interface
Poolex.debug_info/1
.
Changed
- All documentation is divided into separate guides. A table of contents with links has been added to the Readme.
- Several changes have been made to the
Poolex.State
structure:- Fields
busy_workers_count
andbusy_workers_pids
removed in favor ofbusy_workers_state
. - Fields
idle_workers_count
andidle_workers_pids
removed in favor ofidle_workers_state
. - Field
waiting_callers
changed towaiting_callers_state
.
- Fields
0.2.2
0.2.1
Changed
- Updated minimum required versions
- Elixir:
1.7
- OTP:
22
- Elixir:
0.2.0
Changed
run/3
was moved torun!/3
since it can raise runtime errors.run/3
function now handles errors and returns:{:ok, any()}
on success;:all_workers_are_busy
when no idle worker is found in the pool;{:runtime_error, any()}
on runtime errors.
Fixed
- Now workers are running under DynamicSupervisor for better control.
- Fix bug on worker release logic.
[v0.1.1] Poolex.run/3 specs fixed
Fixed spec for Poolex.run/3
[v0.1.0] First implementation
Basic implementation Poolex.
- Supported main interface
Poolex.run/3
with:timeout
option - Added Poolex configuration
- Added docs with usage examples