Skip to content

Releases: general-CbIC/poolex

[0.6.0] Reworked implementations configuration

09 Mar 14:19
Compare
Choose a tag to compare

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

04 Mar 03:25
Compare
Choose a tag to compare

Added

Fixed

  • [Docs] Fix missing Poolex.State.t() on docs generating (issue)

[0.5.0] Rework pool initialization

24 Feb 10:12
Compare
Choose a tag to compare

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 and start_link
    • First argument pool_id moved to poolex_options under required key :pool_id. So the arity of both functions has changed to 1.

      # 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 in poolex_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

17 Feb 17:37
Compare
Choose a tag to compare

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

03 Feb 11:18
Compare
Choose a tag to compare

Added

  • The ability to set your own implementations for workers and callers. 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 and busy_workers_pids removed in favor of busy_workers_state.
    • Fields idle_workers_count and idle_workers_pids removed in favor of idle_workers_state.
    • Field waiting_callers changed to waiting_callers_state.

0.2.2

28 Jan 14:53
Compare
Choose a tag to compare

Added

  • Docs for functions with examples of use.

Changed

0.2.1

27 Jan 07:59
Compare
Choose a tag to compare

Changed

  • Updated minimum required versions
    • Elixir: 1.7
    • OTP: 22

0.2.0

25 Jan 07:33
Compare
Choose a tag to compare

Changed

  • run/3 was moved to run!/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

06 Jan 11:40
Compare
Choose a tag to compare

Fixed spec for Poolex.run/3

[v0.1.0] First implementation

06 Jan 10:46
Compare
Choose a tag to compare

Basic implementation Poolex.

  • Supported main interface Poolex.run/3 with :timeout option
  • Added Poolex configuration
  • Added docs with usage examples