Rota

Rota Job Scheduler #

Rota is a language-neutral job scheduler for modern software.

Define tasks in one language #

import rota, smtplib

@rota.task
def send_email(to_address: str, subject: str, body: str) -> None:
    with smtplib.SMTP("smtp.example.com") as smtp:
        smtp.sendmail("noreply@example.com", to_address, f"Subject: {subject}\n\n{body}")

Invoke them from another #

require "tasks" # Generate with `ruby-rota generate -o tasks.rb`

send_email
  .params(to_address: "test@example.com", subject: "Test Message", body: "This is a test message!")
  .schedule()

Monoliths and Microservices #

Whether your building monoliths or microservices, Rota supports you.

resource "rota_task" "generate_daily_report" {
  name = "generate_daily_report"
  type = "aws_lambda"

  aws_lambda {
    region = "us-east-1"
    function_name = "generate_daily_report"
  }
}