El método Scheduler.getCurrentlyExecutingJobs() en quartz aparentemente no es compatible con clústeres. ¿Qué método usan las personas para obtener una lista de todos los trabajos en ejecución?Obtenga una lista de todos los trabajos que se ejecutan actualmente en un clúster con Quartz
6
A
Respuesta
0
Supongo que una forma es acceder a la base de datos directamente, aunque es un poco arriesgado ya que la API maneja eso completamente.
Existe un problema en su Jira para este propósito. Su conclusión es que necesita revisar el mecanismo de programación si desean atender al clúster.
puede hacer referencia a http://jira.opensymphony.com/browse/QUARTZ-372
3
Parece revisión del mecanismo de programación no está sucediendo en cualquier momento pronto.
lo tanto, aquí es como yo estoy comprobando la tabla directamente - añadir soporte grupo si lo desea:
class QuartzClusterJobStatusService
{
def quartzScheduler
boolean isJobRunning(String job) {
return isJobRunningHere(job) || isJobRunningElsewhere(job)
}
boolean isJobRunningHere(String job) {
for (JobExecutionContext j : quartzScheduler.getCurrentlyExecutingJobs()) {
if (new JobKey(job,"GRAILS_JOBS").equals(j.jobDetail.key)) {
return true
}
}
return false
}
boolean isJobRunningElsewhere(String job) {
JobStoreSupport js = quartzScheduler.sched.resources.jobStore
if (!js.isClustered()) {
return false
}
Connection conn = DBConnectionManager.getInstance().getConnection(js.getDataSource());
PreparedStatement stmt = null
try {
stmt = conn.prepareStatement("SELECT 1 FROM " + js.getTablePrefix() + "FIRED_TRIGGERS where JOB_NAME = ?")
stmt.setString(1, job)
ResultSet rs = stmt.executeQuery()
return rs.next()
} finally {
if (stmt != null)
stmt.close()
}
}
}
Cuestiones relacionadas
- 1. Quartz.NET - ¿Los trabajos no se ejecutan?
- 2. Restricción de dos trabajos que no se ejecutan simultáneamente en Quartz-Scheduler
- 3. ¿Cómo evitar dos trabajos que se ejecutan al mismo tiempo en Quartz?
- 4. Quartz: activación de varios trabajos
- 5. ¿Cómo obtengo una lista de todos los ensamblajes cargados actualmente?
- 6. ¿Cómo verificar las aplicaciones que se ejecutan actualmente en Android?
- 7. Obtenga hipervínculos PDF en iOS con Quartz
- 8. cómo limitar el número de trabajos PBS que se ejecutan simultáneamente
- 9. Obtenga todos los números que se suman a un número
- 10. Obtenga una lista de todos los nodos de árbol (en todos los niveles) en TreeView Controls
- 11. ¿Lista todos los identificadores de archivo abiertos actualmente?
- 12. Can Quartz Scheduler ¿Ejecuta trabajos en serie?
- 13. ¿Cómo puedo desactivar trabajos en Quartz JDBCJobStore?
- 14. OpenMPI: Todos los nodos se ejecutan como nodo 0
- 15. ¿Cómo puedo obtener una lista de todos los trabajos en un tubo de habichuelas mágicas?
- 16. API POSIX llamada para enumerar todos los pthreads que se ejecutan en un proceso
- 17. Obtenga todos los tweets con un hashtag específico
- 18. ¿Hay alguna manera de obtener una lista de todos los contextos de aplicación Spring que se ejecutan en la JVM?
- 19. Obtenga rápidamente una lista de todos los svn: externos para un repositorio de svn remoto
- 20. Obtener los parámetros para las consultas que se ejecutan actualmente en PostgreSQL
- 21. Obtenga el nombre del método que se está ejecutando actualmente
- 22. Procesos programados que se ejecutan dos veces simultáneamente en Openbravo (usando Quartz)
- 23. Obtenga programáticamente el número de trabajos en una cola Resque
- 24. ¿Cómo obtener los nombres de los trabajos de hadoop actualmente en ejecución?
- 25. ASP.NET | Autenticación de formularios | Obtenga TODOS los usuarios iniciados (lista de todos los usuarios o conteo)
- 26. Implementación de una lista de trabajos con sincronización interna
- 27. Obtenga una lista de todos los servidores de impresión en el dominio en C#
- 28. Obtenga todos los días de cualquier mes con objetivo-c
- 29. Resque: trabajos críticos para el tiempo que se ejecutan secuencialmente por usuario
- 30. Obtenga todos los valores de una lista desplegable en una matriz usando Javascript