quantum
con_cache
Our great sponsors
quantum | con_cache | |
---|---|---|
3 | 2 | |
2,257 | 896 | |
1.0% | - | |
7.6 | 4.1 | |
7 days ago | 3 days ago | |
Elixir | Elixir | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
quantum
-
Library for reliably running jobs
In addition, here's a good project for you to look at for cron (Crontab) type functionality you might want to borrow from: https://github.com/quantum-elixir/quantum-core
-
Ruby concurrency is hard: how I became a Ruby on Rails contributor
I'm using Quantum as my job runner in Elixir. Doesn't require even Postgres. Can't due that in Rails or other stacks:
https://github.com/quantum-elixir/quantum-core
^ obviously it won't fit every use case but for that there's Oban which is awesome:
-
Elixir: Practical Concurrency Cookbook
In some cases, we might want to run our code at specific times. Not necessarily every 3 minutes, but every day at 08.00AM. While this is perfectly achievable leveraging the same tools, I'll be pragmatic and recommend Quantum. It allows you to schedule the execution of functions with a cron syntax and takes away all the complexity of managing processes. It's a seasoned library, widely-adopted within the community, very lightweight... And extremely simple.
con_cache
-
Should I use ETS or a GenServer when I just need a K/V store
There's also ConCache or Cachex which will handle the clunky ETS interface for you.
-
Elixir: Practical Concurrency Cookbook
However, while Elixir does provide the necessary abstractions to make caching easy, my recommendation on this one is usually to lean on the community's shoulders. Saša Jurić, for example, wrote a while back ConCache which does exactly this, but there are many others out there. The good thing about not implementing one it's own is that there are many edge cases when dealing with concurrency and it's easy to get it wrong the first few times. As they say, the two hardest problems in computer science are naming and caching.
What are some alternatives?
timex - A complete date/time library for Elixir projects.
cachex - A powerful caching library for Elixir with support for transactions, fallbacks and expirations
filtrex - A library for performing and validating complex filters from a client (e.g. smart filters)
Nebulex - In-memory and distributed caching toolkit for Elixir.
Cronex - A cron like system built in Elixir, that you can mount in your supervision tree
elixir_locker
calendar - date-time and time zone handling in Elixir
stash - A small and user-friendly ETS wrapper for caching in Elixir
quantum-benchmarks - benchmarking quantum circuit emulators for your daily research usage
Haphazard - A configurable plug for caching
oban - 💎 Robust job processing in Elixir, backed by modern PostgreSQL and SQLite3
lru_cache - ETS-based fix-sized LRU cache for elixir