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"
}
}