Fork me on GitHub

LevelUp

A Rails engine to keep your startup technical business organized.

Build structured, flexible and reusable jobs.

Share them and let non-technical people know how things are done.

Manage errors, retries and manual human tasks.

Lightweight, Simple, Intuitive.

LevelUp lets you build different kinds of tasks and compose them to create a runnable job. Define task graphs where each task contains its own business logic implemented in ruby. Jobs can be performed synchronously or asynchronously by background workers.

1 Design
2 Build
3 Run
# app/models/hard_job.rb
class HardJob < LevelUp::Job
  job do
    task: :start, transitions: first_task
    task: :first_task, transitions: :second_task
    task: :second_task, transitions: :end
  end
end
# app/models/hard_job/first_task.rb
module HardJob
  class FirstTask < LevelUp::Task
    def run
      puts "Doing hard work"
    end
  end
end
# create a new job instance
job = HardJob.create(key: 'job-key')

# execute the job synchronously
job.boot

# or asynchronously
job.boot_async!
4React & Analyze