2009-10-13 23 views
6

Estoy considerando utilizar el marco Quartz para programar la ejecución de varios cientos de trabajos.Java - Crear un flujo de trabajo en Quartz

De acuerdo con su API, los trabajos pueden programarse para ejecutarse en ciertos momentos en el tiempo pero no para ejecutarse uno después del otro (y detener una cadena de trabajos si alguno falla). Los únicos métodos recomendados que fue capaz de encontrar son:

  • El uso de un oyente, que da cuenta de la realización de un trabajo y programar la próxima gatillo para disparar (la forma de coordinar esto?)
  • Cada trabajo recibirá una parámetro que contiene el siguiente trabajo para ejecutar y, después de completar el trabajo real, programar su ejecución. (Cooperativa)

¿Conoces un método mejor para crear un flujo de trabajo en Quartz?

¿Puede recomendar otros métodos/marco para implementar un flujo de trabajo en Java?

EDITADO: Mientras tanto me enteré de OSWorkflow que parece ser una buena combinación para lo que necesito. Parece que lo que necesito implementar es un "Sequence Pattern".

Respuesta

1

Me parece que desea que Quartz programe el primer trabajo , y encadene todo eso.

¿Ha mirado encapsular cada tarea usando el Command Pattern y unirlas?

2

Cuando la documentación de Quartz habla de "Trabajo", se refiere a una clase que implementa la Interfaz "Trabajo", que realmente es cualquier clase con un método de "ejecución" que toma el objeto Contexto de Cuarzo. Al crear esta implementación, realmente puede hacer lo que quiera.

Puede crear una implementación de Quartz Job Interface que simplemente llama a todas las tareas de su flujo de trabajo en serie y arroja una excepción JobExecutionException en caso de error.

0

He trabajado en un proyecto llamado programador de tareas dinámico que utilizan cuarzo para ejecutar cadenas de trabajo implementar un sencillo flujo de trabajo de una manera tolerante a fallos (definied en formato XML).

Tome un vistazo a http://sourceforge.net/projects/dynatasksched/
El proyecto es beta, pero creo que es posible que algunas ideas para comenzar .. da

espero que sea útil!

0

Para el soporte de la cadena de trabajo para Quartz, es posible que desee comprobar el proyecto QuartzDesk en el que he estado involucrado. En la versión 2.0. hemos agregado un poderoso job chaining engine que le permite orquestar sus trabajos de Quartz sin la necesidad de modificar el código de su aplicación.

El motor se encarga de propagar el resultado de la ejecución del trabajo y otros parámetros desde el trabajo de origen al trabajo de destino encadenado.

QuartzDesk viene con una GUI que le permite actualizar dinámicamente sus cadenas de trabajo sin interrumpir su aplicación.

enter image description here

Cuestiones relacionadas