Buenas,
Tuvimos exactamente el mismo problema en mi compañía. Al final, como los procesos se acaban dilatando en el tiempo algunos no llegaban a ejecutarse nunca.
La mejor solución que encontramos en ese momento es desechar por completo el Schedule propio que tiene interno y montar un único proceso ciclico que nos avise cuando falla.
Te ilustro con una imagen para que entiendas mejor:
Es un proceso que se ejecuta en bucle cada 30 minutos. Tiene controles para que si da en algún proceso tres fallos seguidos pare y avise "al humano" para que se revise.
Los bloques rosas son para guardado de logs.
Los azules serian cada uno de los procesos individuales que se llamarian.
y los amarillos para control de errores o ejecución de procesos ajenos a la ejecución principal. (Borrado de temporales... mantenimientos de BBDD....)
Como mejora extra pusimos "variables de sesión" por si en algun momento tenemos que tocar algo del proceso evitar el pararlo y rearrancarlo en la Control Room. (Un ejemplo de esto por ejemplo es el número de "acciones" que quieres que ejecute o si quieres que haga una parada controlada cuando acabe de tratar algo para evitar dejar cosas a medias.
Espero haberte ayudado. Cualquier cosa, comentanos.
Un saludo,
Muchas gracias.
------------------------------
Pablo Sarabia
Programmer
Altamira AM
------------------------------