Logo

0x5a.live

for different kinds of informations and explorations.

GitHub - general-CbIC/poolex: A library for managing pools of workers

A library for managing pools of workers. Contribute to general-CbIC/poolex development by creating an account on GitHub.

Visit SiteGitHub - general-CbIC/poolex: A library for managing pools of workers

GitHub - general-CbIC/poolex: A library for managing pools of workers

A library for managing pools of workers. Contribute to general-CbIC/poolex development by creating an account on GitHub.

Powered by 0x5a.live ๐Ÿ’—

Poolex

Build and tests workflow hex.pm version Hex Docs License Total Download Chat on Matrix

Poolex is a library for managing pools of workers. Inspired by poolboy.

Table of Contents

Features

With poolex you can:

  • Launch multiple pools of workers and then access the free ones from anywhere in the application.
  • Configure the pool to run additional temporary workers if the load increases.
  • Analyze and optimize your pool's production settings using metrics.
  • Use your implementations to define worker and caller processes access logic.

Why poolex instead of poolboy?

  • poolex is written in Elixir. This library is much more convenient to use in Elixir projects.
  • poolboy is a great library, but not actively maintained :crying_cat_face:Last poolboy commit

Requirements

Requirement Version
Erlang/OTP >= 22
Elixir >= 1.7

Installation

Add :poolex to your list of dependencies in mix.exs:

def deps do
  [
    {:poolex, "~> 1.0"}
  ]
end

Usage

In the most typical use of Poolex, you only need to start a pool of workers as a child of your application.

children = [
  {Poolex, 
    pool_id: :worker_pool,
    worker_module: SomeWorker,
    workers_count: 5}
]

Supervisor.start_link(children, strategy: :one_for_one)

Then you can execute any code on the workers with run/3:

iex> Poolex.run(:worker_pool, &(is_pid?(&1)), checkout_timeout: 1_000)
{:ok, true}

A detailed description of the available configuration or examples of use can be found in documentation.

Guides

Contributions

If you feel something can be improved or have any questions about specific behaviors or pieces of implementation, please feel free to file an issue. Proposed changes should be taken to issues before any PRs to save time on code that might not be merged upstream.

If you are ready to change the project, please read the Contributing guide first.

Elixir Resources

are all listed below.

Resources

listed to get explored on!!

Made with โค๏ธ

to provide different kinds of informations and resources.