Your error monitor catches exceptions. Mission Control shows failed jobs.
Neither tells you when a recurring job simply stops running — no error, no alert, nothing. JobTick does, with zero configuration per job.
# Add to your Gemfile gem 'jobtick'
JobTick.configure do |config| config.api_key = ENV['JOBTICK_API_KEY'] end # Deploy. JobTick reads your schedule # config and registers every job. # No job files touched.
# Your existing file — unchanged every 1.day, at: '2:00 am' do runner 'InvoiceJob.perform_later' end every :hour do runner 'SyncInventoryJob.perform_later' end
# Your existing file — unchanged nightly_report: class: NightlyReportJob schedule: every day at 3am sync_rates: class: ExchangeRateJob schedule: every hour
| Tool | Whenever auto-discovery | Solid Queue auto-discovery | Catches silence | Zero config per job | Price |
|---|---|---|---|---|---|
| JobTick | ✓ yes | ✓ yes | ✓ yes | ✓ yes | €12/mo |
| Healthchecks.io | ✗ no | ✗ no | ✓ yes | ✗ manual curl | $5/mo |
| Cronitor | ✗ no | ✗ no | ✓ yes | ✗ wrap per job | $29/mo |
| AppSignal | ~ errors only | ~ errors only | ✗ no | ✗ no | $19/mo+ |
| Mission Control | ✗ no | ~ local only | ✗ no | ✓ yes | free |
Join the early access list. Launching June 2026.