mudasobwa

mudasobwa

Creator of Cure

Tarearbol - a lightweight task manager (now allows subscriptions to task results)

Tarearbol is a lightweight task manager, allowing retries, callbacks, assurance that the task succeeded, and more.

Starting with version 0.8.1 it married Envío to make it drastically easy to subscribe to task processing callbacks via Registry with pub_sub.

Tarearbol now allows subscriptions to task results

Most Liked

mudasobwa

mudasobwa

Creator of Cure

Version update. Tarearbol gets DynamicManager to ease building the collections of supervised workers with a similar behaviours, e. g. watchers for different changing entities.

  • Scaffold for the supervised DynamicSupervisor
  • No code for managing processes required
  • Implementation is as easy as 4 callbacks
  • Extremely easy testing
  • Behaviour-driven consumers
  • Consistent state and callbacks on state changes (like restarting)

Implementation details and flow diagram.

mudasobwa

mudasobwa

Creator of Cure

This package does not compete with other [known to me] task management libraries. Most of known to me libraries deal mostly with task queues (like GitHub - akira/exq: Job processing library for Elixir - compatible with Resque / Sidekiq · GitHub and family) and/or alternative supervisions (like https://github.com/PSPDFKit-labs/sidetask.)

Tarearbol does none of the above.

Since yesterday it has two unrelated parts. The old one is a very thin wrapper around standard Task, reducing a boilerplate when one needs to deal with often-occasionally-failing tasks (retries, error handling, logging, etc.) plus it brings its own Supervisor. It was done mostly to eliminate the necessity to copy-paste boilerplate.

The part I introduced yesterday is actually not about tasks, but rather about DynamicSupervisor with many no-so-long living children. It has no analogs AFAIK. It drastically simplifies dealing with DynamicSupervisor when the workers are undefined upfront, have a defined lifecycle and might increase thousands in a number. It also makes testing DynamicSupervisor with children a charm.

mudasobwa

mudasobwa

Creator of Cure

New updates.

v0.13.1 includes lightweight cron scheduler fully based on spawn processes. Allows conditional job termination, rescheduling, keeps track of last execution outcome.

Zero boilerplate is required.

Comes with cron record parser, returning all the upcoming events as Stream, Tarearbol.Calendar.{beginning_of,end_of}/2 working properly with any calendar (not only Calendar.ISO.)

Where Next?

Popular in Announcing Top

asiniy
Hey there! I wrote a download elixir package which does exactly what its name about - an easy way to download files. I saw solutions ab...
New
martinthenth
Hello everybody :wave: Recently, some of my colleagues talked about database ids and uuids and their problems, and I remembered the pain...
New
devonestes
Introducing assertions, the library that helps you write really great test assertions! GitHub: GitHub - devonestes/assertions: Helpful a...
New
kelvinst
Hey everyone! Well, we made this lib a while ago and now we decided to finally go out and public with it! It’s a tool for creating and m...
New
RobertDober
Earmark is a pure-Elixir Markdown converter. It is intended to be used as a library (just call Earmark.as_html), but can also be used as...
239 12560 134
New
ahamez
Hi everyone, I’ve been working on this protobuf library for 3 years. We use it in the company I work for, EasyMile, to communicate with ...
New
nikokozak
Hello all, I’ve been working on Svonix - a library for quickly integrating Svelte components into Phoenix views. It’s a much-needed succ...
New
hpopp
After just over two years in development, this latest version of Pigeon is what I finally consider done in regards to my original vision ...
New
benlime
LiveMotion enables high performance animations declared on the server and run on the client. As a follow up to my previous thread A libr...
New
trisolaran
Hi! :waving_hand: I would like to present LiveSelect, a little library that I wrote to easily add a dynamic selection input to your LV f...
198 10858 107
New

Other popular topics Top

chrismccord
As promised, the first release candidate of Phoenix 1.3.0 is out! This release focuses on code generators with improved project structure...
New
ovidiubadita
Hey all, I discovered Elixir and I love it. I always wanted to learn a functional programming and I intended to go for Haskell, but afte...
New
Fl4m3Ph03n1x
About me? ( if you have nothing better to do than reading about some random guy in the internet :stuck_out_tongue: ) Hello all, this is ...
New
josevalim
Hi everyone, One of the features added to Elixir early on to help integration with Erlang code was the idea of overridable function defi...
New
baxterw3b
Hi guys, i’m new in the Elixir world, and i have to say, that i love it! i’m having some problem to understand anonymous functions with ...
New
fayddelight
I tried installing elixir 1.11.2 erlang 23.3.4 via asdf in my zsh shell. Enabled the versions locally and globally. When I list them ...
New
nobody
Hi! In PHP: $_SERVER[‘SERVER_ADDR’] - in Elixir? Searched the docs for ip address and the web, no good results. Thanks!
New
hariharasudhan94
Lets say I have map like this fetching from my database %{"_id" => #BSON.ObjectId<58eb1a7a9ad169198c3dXXXX>, "email" => ...
New
jononomo
For some reason my phoenix channels are working for me in my local dev environment, but as soon as I deploy via Docker, I get a 403 error...
New
sergio
Kind of like when jquery came out, it was super necessary. Existing drag and drop libraries have a bunch of baggage to support old browse...
New

Latest on Elixir Forum

We're in Beta

About us Mission Statement