¿Puede más de un hilo llamar a métodos de forma segura en una instancia de Scheduler devuelta por el StdSchedulerFactory al mismo tiempo?¿Las instancias del programador de Quartz son seguras?
Respuesta
Tuve este problema, así que pensé en mirar el código fuente. Suponiendo que está utilizando una configuración estándar de Quartz (almacenando trabajos y desencadenadores en RAM en lugar de una JobStore persistente), parece que Quartz es seguro para subprocesos.
Al acceder a la fuente, finalmente llegará a RamJobStore, que almacena todos los trabajos y desencadenantes en la memoria.
public void storeJobAndTrigger(SchedulingContext ctxt, JobDetail newJob,
Trigger newTrigger) throws JobPersistenceException {
storeJob(ctxt, newJob, false);
storeTrigger(ctxt, newTrigger, false);
}
En cada uno de los métodos storeJob (..) y storeTrigger (..), hay bloques sincronizados separadas con sus propios objetos únicos para el almacenamiento de puestos de trabajo y disparadores de una manera segura hilo:
synchronized (jobLock) {
if (!repl) {
// get job group
...
}
}
y sincronizar un disparador:
synchronized (triggerLock) {
...
synchronized (pausedTriggerGroups) {
...
}
}
Así que en resumen, parecería que puede realizar llamadas seguras de rosca a una instancia de la clase Programador
This post en el sitio web de Terracotta lo confirma.
- 1. ¿Las matrices C# son seguras?
- 2. ¿Las ventanas Win32 son seguras?
- 3. ¿Las engas C# son seguras?
- 4. ¿Cómo escalar el programador de Quartz?
- 5. ¿Las segmentaciones de C# son seguras?
- 6. ¿Son seguras las preg_functions de PHP multibyte?
- 7. ¿Qué tan seguras son las sesiones de PHP?
- 8. ¿Son seguras las consultas multilínea sql-injection?
- 9. ¿Qué tan seguras son las variables de sesión de PHP?
- 10. ¿Las clases de singleton son seguras para subprocesos en IIS?
- 11. ¿Las funciones de tiempo de MSVC son seguras para subprocesos?
- 12. Ayuda de la sesión CodeIgniter, ¿las cookies no son seguras?
- 13. ¿Qué tan seguras son las claves de acceso Amazon AWS?
- 14. ¿Son seguras las matrices de Java en un método estático?
- 15. ¿Las funciones LoadLibrary, FreeLibrary y GetModuleHandle Win32 son seguras?
- 16. ¿Las propiedades estáticas autoejecutadas por C# son seguras para subprocesos?
- 17. cuán seguras son las declaraciones preparadas por PDO
- 18. ¿Son seguras las tablas temporales en SQL Server multiusuario?
- 19. ¿Las funciones de lectura y escritura del socket de refuerzo son seguras?
- 20. ¿Las tareas del programador Heroku cuestan dinero?
- 21. ¿Cuáles son todas las instancias de azúcar sintáctico en Scala?
- 22. ¿Están seguras las clases de Static?
- 23. ¿Las consultas dinámicas de mysql con sql escapan son tan seguras como las declaraciones preparadas?
- 24. ¿Tus colecciones son seguras para hilos?
- 25. Cómo mantener un historial de trabajos usando el programador de Quartz
- 26. Comprensión del programador de Linux
- 27. ¿Las variables estáticas de la función son seguras para subprocesos en GCC?
- 28. Programador de cuarzo theadpool
- 29. ¿Cuáles son las técnicas para permitir actualizaciones de software seguras en sistemas integrados?
- 30. Son instancias independientes de Postgresql posible