InfluxDB Client prevents application from exiting when batch mode is enabled
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 35/100
Línea de trabajo
Comienza en el punto de entrada enableBatch y en la configuración BatchOptions.DEFAULTS mostrada en el informe; después, reproduce el ciclo de vida con el ejemplo App proporcionado. Traza cómo se crea la fábrica de hilos predeterminada y verifica que la aplicación pueda salir normalmente cuando el modo batch está habilitado, conservando el comportamiento batch.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Hi Team,
When an influxdb-java client is created and batch is enabled, it prevents the application from exiting normally due to the use of a default non-daemon thread pool. This prevents the application from shutting down in the event that the main thread exits/ crashes. Adding a shutdown hook would not help with closing the client as the JVM will only run shutdown hooks after all non-daemon thread exits. A small example would be running the following:
public class App {
public static void main(String[] args) {
InfluxDB influxDB = InfluxDBFactory.connect("http://localhost:8086");
influxDB.enableBatch();
Runtime.getRuntime().addShutdownHook(new Thread(influxDB::close));
System.out.println(influxDB.ping());
}
}
Currently, the workaround is to explicitly specify a daemon thread factory:
influxDB.enableBatch(
BatchOptions.DEFAULTS
.threadFactory(runnable -> {
Thread thread = new Thread(runnable);
thread.setDaemon(true);
return thread;
})
);
But I was wondering if it would be a better user experience to have this be the default behaviour so that the main application is allowed to exit normally. The rationale is that a common use case for influxdb-java is to write application metrics and usually one would not expect a metrics library to affect the main application (e.g. cause it to not exit properly).
- Lenguaje dominante
- Java
- Estrellas
- 1.2k
- Forks
- 468
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de influxdata/influxdb-java
-
Dificultad 4/5 3-5 días Aptitud para principiantes 38/100
influxdata/influxdb-java#1012 ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 30/100
influxdata/influxdb-java#1006 · 1 comentario · 1 reacción ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
influxdata/influxdb-java#1005 · 3 comentarios ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
influxdata/influxdb-java#999 ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
influxdata/influxdb-java#970 ·
Todos los issues de influxdata/influxdb-java
Issues similares
-
ASM is not up-to-dateAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 60/100
Los mantenedores suelen responder en 1 día
-
[BUG] S3 CORS responses omit Access-Control-Allow-Credentials for matched originsPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
floci-io/floci#5369 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
securityHeaders replaces a route's own Content-Security-Policy (0.9.9; weakens embedders' pages)Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
sqlcipher/sqlcipher-android#97 · 1 comentario ·
-
area-integrations
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día