como logro que se ejecuto todos los dias a las 4am

ScheduledExecutorService ses =
Executors.newScheduledThreadPool(1);
Runnable pinger = new Runnable() {
@Override
public void run() {
System.out.println("PING!");

}
};
ses.scheduleAtFixedRate(pinger, 1, 4, TimeUnit.SECONDS); //???????

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

quartz, cron

Para hacer que una tarea se ejecute a cierta hora tienes dos opciones:

En Linux/*NIX puedes usar cron. Si tienes un programa en Java que quieres arrancar a cierta hora, esta es la mejor opción.

Si tienes una aplicación web en Java y necesitas que se haga algo a cierta hora, puedes utilizar Quartz, que es una biblioteca inspirada en cron para ejecutar tareas a cierta hora dentro de un proceso Java. Pero revisa si realmente tienes que arrancar dicha tarea desde dentro de tu app...

la idea

la idea es resetear una variable del socket cada cierta horas o a una hora en especial.