Estoy buscando un reemplazo "at" escalable, con alta disponibilidad. Debe admitir la adición y eliminación de trabajos en tiempo de ejecución.Buscando una implementación "at" escalable
Algunos antecedentes: Tengo una aplicación donde desencadenar millones de eventos, cada evento ocurre una sola vez. No necesito mecanismos tipo cron (primer domingo del mes, etc.), simplemente fecha, hora y contexto.
Actualmente estoy usando el Quartz scheduler, y si bien es un proyecto muy bueno, tiene dificultades para manejar la cantidad de eventos que le arrojamos, incluso después de un montón de ajustes (fragmentación, aumento del intervalo de sondeo, etc.) debido al bloqueo básico que realiza en la base de datos de subrayado. Además, es un poco exagerado para nosotros, ya que básicamente tenemos millones de desencadenantes de una sola vez y un número relativamente pequeño de trabajos.
lo agradecería cualquier sugerencia
¿Cuáles son sus necesidades de todo el fracaso? Por ejemplo, si una máquina se cae, ¿le gustaría que los eventos "perdidos" se disparen cuando aparece un reemplazo? –
Sí, similar a Quartz. Además, ejecuto Quartz en un clúster, por lo que siempre hay una máquina caliente en espera (en Quartz todos los nodos compiten cada vez que necesitan sondear la base de datos para buscar trabajos) –
Me preguntaba qué fácil podíamos hacer las cosas * sin * Quartz. Sin embargo, si cada trabajo tiene que ser reconocido, eso lo hace más complicado. ¿Cuál es la penalidad si un trabajo se ejecuta dos veces? (Por ejemplo, ¿podría confirmar todos los trabajos ejecutados en el último minuto, una vez por minuto?) –