Crear un demonio en java
Hola tengo una pequeña pregunta y es que quiero crear un demonio en java para que cuando alguien inserte un archivo en una carpeta el demonio lo procese y haga mi lógica.
he escuchado de cosas como mulesoft o apache karaf pero realmente no encuentro nada util si alguien me pudiera ayudar con alguna sugerencia se los agradecería infinitamente los amo.
- Inicie sesión o regístrese para enviar comentarios
Esto me sirvió cuando tuve
Esto me sirvió cuando tuve que cachar unas facturas de un cliente:
try {
WatchService fileSystemWatchService = FileSystems.getDefault().newWatchService();
WatchKey watchKey = directory.register(fileSystemWatchService,
StandardWatchEventKinds.ENTRY_CREATE);
while (true) {
WatchKey watchKeyActual = fileSystemWatchService.take();
for (WatchEvent<?> event : watchKeyActual.pollEvents()) {
WatchEvent.Kind<?> eventKind = event.kind();
if (eventKind == StandardWatchEventKinds.OVERFLOW) {
continue;
}
WatchEvent<Path> eventPath = (WatchEvent<Path>) event;
Path fileName = eventPath.context();
String name = fileName.toString();
String extFile = org.apache.commons.io.FilenameUtils.getExtension(name);
if ((name.contains("xxx_") && "zip".equals(extFile)) || (name.contains("zzzz_") && "zip".equals(extFile))) {
tarea1(path + name);
}
}
boolean isReset = watchKeyActual.reset();
if (!isReset) {
System.out.println("Se salio por break: ");
break;
}
}
} catch (IOException | InterruptedException ioe) {
System.out.println("Se salio por catch: ");
}
apoolonioluis Gracias
Hermano muchas gracias unas preguntas nada mas por lo que veo utilizas hilos verdad ?, y usas algún jar o algo parecido
y gracias por tu respuesta
JDK
El WatchService es algo estándar de Java, no necesitas bibliotecas externas. Y sí, puedes usar un hilo dedicado para hacer polling al watcher y actuar cuando recibas un evento como archivo nuevo o archivo modificado.