cronping

Java

Ping Cronping from Java applications.

Java 11+ includes a built-in HttpClient — no extra dependencies required.

Using HttpClient (Java 11+)

import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.time.Duration;

public class CronpingExample {

    private static final HttpClient HTTP_CLIENT = HttpClient.newBuilder()
            .connectTimeout(Duration.ofSeconds(10))
            .build();

    public static void pingCronping(String token) {
        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create("https://ping.cronping.com/" + token))
                .timeout(Duration.ofSeconds(10))
                .GET()
                .build();

        try {
            HTTP_CLIENT.send(request, HttpResponse.BodyHandlers.discarding());
        } catch (Exception e) {
            System.err.println("Cronping ping failed: " + e.getMessage());
            // Don't rethrow — the job succeeded, only the notification failed
        }
    }

    public static void main(String[] args) {
        // ... your job logic ...

        pingCronping("<token>");
    }
}

Async ping (non-blocking)

Use sendAsync to fire the ping without waiting for the response:

import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.time.Duration;

private static final HttpClient HTTP_CLIENT = HttpClient.newHttpClient();

public static void pingCronpingAsync(String token) {
    HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create("https://ping.cronping.com/" + token))
            .timeout(Duration.ofSeconds(10))
            .GET()
            .build();

    HTTP_CLIENT.sendAsync(request, HttpResponse.BodyHandlers.discarding())
            .exceptionally(ex -> {
                System.err.println("Cronping ping failed: " + ex.getMessage());
                return null;
            });
}

Using HttpURLConnection (Java 8+)

For projects that cannot use Java 11+:

import java.net.HttpURLConnection;
import java.net.URL;

public static void pingCronping(String token) {
    HttpURLConnection connection = null;
    try {
        URL url = new URL("https://ping.cronping.com/" + token);
        connection = (HttpURLConnection) url.openConnection();
        connection.setRequestMethod("GET");
        connection.setConnectTimeout(10_000);
        connection.setReadTimeout(10_000);
        connection.getResponseCode(); // trigger the request
    } catch (Exception e) {
        System.err.println("Cronping ping failed: " + e.getMessage());
    } finally {
        if (connection != null) {
            connection.disconnect();
        }
    }
}

Spring Boot — scheduled job

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;

@Component
public class NightlyBackupJob {

    private final RestTemplate restTemplate;

    public NightlyBackupJob(RestTemplate restTemplate) {
        this.restTemplate = restTemplate;
    }

    @Scheduled(cron = "0 0 3 * * *")
    public void run() {
        // ... your job logic ...

        try {
            restTemplate.getForObject("https://ping.cronping.com/<token>", Void.class);
        } catch (Exception e) {
            // Log but don't fail the job
            System.err.println("Cronping ping failed: " + e.getMessage());
        }
    }
}

Quartz Scheduler

import org.quartz.Job;
import org.quartz.JobExecutionContext;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.time.Duration;

public class BackupJob implements Job {

    private static final HttpClient HTTP_CLIENT = HttpClient.newHttpClient();
    private static final String PING_TOKEN = "<token>";

    @Override
    public void execute(JobExecutionContext context) {
        // ... your job logic ...

        try {
            HttpRequest request = HttpRequest.newBuilder()
                    .uri(URI.create("https://ping.cronping.com/" + PING_TOKEN))
                    .timeout(Duration.ofSeconds(10))
                    .GET()
                    .build();
            HTTP_CLIENT.send(request, HttpResponse.BodyHandlers.discarding());
        } catch (Exception e) {
            System.err.println("Cronping ping failed: " + e.getMessage());
        }
    }
}

On this page