Fl4m3Ph03n1x

Fl4m3Ph03n1x

Replacing crontab with elixir

Background

I saw in a recent talk by @sasajuric in a table that he replaces conrjobs, crontabs, scripts and more using Elixir. I have tried to use mix scripts but from my experience you always end up needing to go down and execute some OS level commands using System.cmd which completely destroys the purpose and makes the script OS dependent.

Questions

  1. How to replace cronjobs with Elixir scripts? (without using anything from the OS?)
  2. How do you copy, replace, move, download files using just Elixir and not the OS commands we usually rely on?

Most Liked

sasajuric

sasajuric

Author of Elixir In Action

There seems to be some confusion here. I don’t replace cronjobs with mix scripts. What I tend to do, when it’s possible, is run periodical jobs straight from the system itself. I.e. I spawn a process which will periodically execute a job. This is not always possible (or simple), but when it is (and IME it often is), then you can consolidate more of the implementation of the system into a single place.

NobbZ

NobbZ

None of my systems uses any version of cron. Me and my co workers have migrated to systemds timer units.

LostKobrakai

LostKobrakai

I just used crontab as the example already mentioned. There are surely other ways to schedule stuff even in the beam itself. The point was rather that it’s a tradeoff to be made if you reimplement something in elixir (if it doesn’t exist) or if it’s simpler to use OS level tools already existing. It makes sense to move stuff into elixir if the overhead of managing the external system is extensive enough. If not just use the OS level tool until it no longer fits the above premise.

Where Next?

Popular in Questions Top

JeremM34
Hello, how can I check the Phoenix version ? Thanks !
New
vegabook
I’m brand new to Phoenix and I have stripped one of the demo applications to the bone. I just want to get an svg up on the screen. Here i...
New
jononomo
I am trying to figure out how Mix knows whether the environment is test, dev, or prod – where is this set? Thanks.
New
Qqwy
Original source of discussion: This topic on the Pragmatic Programmers’ Functional Web Development with Elixir, OTP, and Phoenix forum. ...
New
lastday4you
I wanted to check elixir version in phoenix because i found that my elixir is 1.5 but when i use Enum.chunk_by it said the function is un...
New
sergio_101
I am VERY much an elixir newbie. I have taken one elixir course and one phoenix course on Udemy. During that course, I saw the instructor...
New
senggen
Erlang/OTP 25 [erts-13.2.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] 15:22:35.803 [error] gen_event {lager_file_backend...
New

Other popular topics Top

KronicDeth
Elixir plugin for JetBrain’s IntelliJ Platform (including Rubymine) This is a plugin that adds support for Elixir to JetBrains IntelliJ...
289 36689 110
New
greenz1
I have a phoenix application from which a user can download multiple(5-6) files of size 1MB. I couldn’t find anything related to sending ...
New
sorentwo
Hello! tl;dr Announcing Oban, an Ecto based job processing library with a focus on reliability and historical observability. After spen...
985 44608 311
New
alice
Hey, Just curious what are the main benefits of Elixir compared to Clojure? When is Elixir more useful than Clojure and vice versa? Th...
New
albydarned
Hello all! I am typing this post from my new MacBook Pro with the M1 chip. I’m loving it so far, and will probably use it as my daily dr...
New
jason.o
In the code below, if the create action is not set to accept “extra_key” as an input, it errors out with a message shown above. Is there ...
New

We're in Beta

About us Mission Statement