# Monitor Sidekiq scheduled jobs with HookPulse

The job checks in when it ends and reports the failure when it raises, before Sidekiq retries it.

HookPulse · Updated 2026-10-14

## Step 1. Create the monitor

Add a routine named sidekiq-job and set how often the job runs. Its page shows the check-in URL: use it in place of https://hookpulse.net/in/YOUR_ID.

## Step 2. Check in from the job

Net::HTTP comes with Ruby, so the job needs no extra gem for the check-in.

```
# app/jobs/nightly_backup_job.rb
require "net/http"

class NightlyBackupJob
  include Sidekiq::Job

  def perform
    Backup.run!
    check_in
  rescue StandardError
    check_in("/fail")
    raise
  end

  private

  def check_in(path = "")
    Net::HTTP.get_response(URI("https://hookpulse.net/in/YOUR_ID#{path}"))
  end
end
```

## Step 3. Schedule it

With the sidekiq-cron gem, add the job to config/schedule.yml.

```
# config/schedule.yml (sidekiq-cron)
nightly_backup:
  cron: "0 3 * * *"
  class: "NightlyBackupJob"
```

## Step 4. Run it once

Run NightlyBackupJob.perform_async once from a console. The routine shows the first check-in. From then on, a missed or failed run sends the alert.

[Create the monitor](https://hookpulse.net/?routine=sidekiq-job&every=86400#routines)

[Monitor Sidekiq scheduled jobs with HookPulse](https://hookpulse.net/guides/sidekiq)
