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());
}
}
}