 |
Monitoring.
- Web Interface - Rocket Job Web Interface.
- Monitor and manage every job in the system.
- View current status.
|
 |
Priority based processing.
- Process jobs in business priority order.
- Dynamically change job priority to push through business critical jobs.
|
 |
Cron replacement.
|
ImportJob.create!(
file_name: "file.csv",
priority: 5
)
|
Familiar interface.
|
class MyJob < RocketJob::Job
def perform
# Implement behavior here ...
end
end
|
Implement behavior.
|
class Job < RocketJob::Job
field :login, String
field :count, Integer
def perform
# Implement behavior here ...
end
end
|
Attributes.
- Real attributes with data types.
- Use the keyword: field.
|
class Job < RocketJob::Job
field :login, String
field :count, Integer
def perform
# Implement behavior here ...
end
validates_presence_of :login
validates :count, inclusion: 1..100
end
|
Validations.
|
class MyJob < RocketJob::Job
after_start :email_started
def perform
# Implement behavior here ...
end
# Send an email when the job starts
def email_started
MyJobMailer.started(self).deliver_now
end
end
|
Callbacks.
- Extensive callback hooks to customize job processing and behavior.
|
class ImportPricesJob < RocketJob::Job
include RocketJob::Batch

def perform(row)
# Each row is a Hash
# Load into DB via Active Record
Price.create!(row)
end
end
# Upload the file into the Batch Job for processing
job = ImportPricesJob.new
job.upload("prices.csv")
job.save!
|
Batch Jobs.
- Use many workers to process a single job at the same time.
- Process large files by breaking it up into pieces that can be processed concurrently across all available workers.
|
 |
Trigger Jobs when new files arrive.
- Dirmon monitors directories for new files.
- Kicks off a Rocket Job to process the file.
|
 |
High Performance.
- Over 1,000 jobs per second on a single server.
|
 |
Reliable.
- Reliably process and track every job.
|
 |
Scalable.
- Scales from a single worker to thousands of workers across hundreds of servers.
|
 |
Fully supports and integrates with Rails.
|
 |
Can run standalone on Ruby.
|