cronping

Ruby

Ping Cronping from Ruby scripts and applications.

Ruby's standard library net/http is all you need — no external gems required.

Basic usage

require "net/http"
require "uri"

def ping_cronping(token)
  uri = URI("https://ping.cronping.com/#{token}")
  Net::HTTP.start(uri.host, uri.port, use_ssl: true, open_timeout: 10, read_timeout: 10) do |http|
    http.get(uri.path)
  end
rescue StandardError => e
  warn "Cronping ping failed: #{e.message}"
  # Don't re-raise — the job succeeded, only the notification failed
end

# Your job logic
def run_backup
  # ... your code here ...
end

run_backup
ping_cronping("<token>")

Using Net::HTTP.get (one-liner)

For simple scripts where brevity is preferred:

require "net/http"

# At the end of your job:
begin
  Net::HTTP.get(URI("https://ping.cronping.com/<token>"))
rescue StandardError => e
  warn "Cronping ping failed: #{e.message}"
end

Using the faraday gem

If your project already uses Faraday:

require "faraday"

PING_URL = "https://ping.cronping.com/<token>"

def ping_cronping
  conn = Faraday.new(url: PING_URL) do |f|
    f.options.timeout = 10
  end
  conn.get
rescue Faraday::Error => e
  warn "Cronping ping failed: #{e.message}"
end

# Your job
def main
  # ... your logic ...
end

main
ping_cronping

As a module

Reusable across multiple jobs in the same project:

require "net/http"
require "uri"

module Cronping
  PING_BASE_URL = "https://ping.cronping.com"

  def self.ping(token)
    uri = URI("#{PING_BASE_URL}/#{token}")
    Net::HTTP.start(uri.host, uri.port, use_ssl: true, open_timeout: 10, read_timeout: 10) do |http|
      http.get(uri.path)
    end
  rescue StandardError => e
    warn "Cronping ping failed: #{e.message}"
  end
end

# Usage
Cronping.ping("<token>")

In a Rake task

# Rakefile
require "net/http"

def ping_cronping(token)
  uri = URI("https://ping.cronping.com/#{token}")
  Net::HTTP.start(uri.host, uri.port, use_ssl: true, open_timeout: 10, read_timeout: 10) do |http|
    http.get(uri.path)
  end
rescue StandardError => e
  warn "Cronping ping failed: #{e.message}"
end

task :nightly_backup do
  # ... your backup logic ...

  ping_cronping("<token>")
end

On this page