2009-09-30 38 views

Respuesta

29

cuarzo es la solución más conocido para programar procesos en entornos Java, pero hay un montón de opciones. Verifique esta lista:

Quartz es un sistema de programación de trabajos de código abierto que puede integrarse con, o usarse junto a prácticamente cualquier aplicación J2EE o J2SE. Quartz se puede usar para crear horarios simples o complejos.

Jcrontab está diseñado para extenderse e integrarse con cualquier proyecto. Lee y almacena las tareas para ejecutar en un archivo, una base de datos o un EJB y proporciona una interfaz de usuario web y una GUI de oscilación básica.

Essiembre J2EE Scheduler es un mecanismo simple de programación de tareas para aplicaciones J2EE. Esta biblioteca se puede considerar como un contenedor de las clases Timer y TimerTask que se encuentran en la API estándar de Java. Configuración para las tareas que se ejecutarán y su frecuencia está basada en XML.

cron4j es un programador para la plataforma Java 2 que es muy similar al daemon cron de UNIX.

Oddjob El objetivo de Oddjob es proporcionar cierto orden y visibilidad a todos los archivos por lotes y tareas cron que unen los procesos empresariales críticos de una empresa.

Fulcrum Scheduler ofrece un servicio de planificador. Está basado en el TurbineScheduler proporcionado con Turbine, pero se han eliminado todas las cosas más antiguas. Actualmente SOLAMENTE el Programador no persistente está hecho. Carga trabajos programados desde el archivo config xml del componente.

Gos4j -Goal Oriented Scheduling for Java- es una forma de organizar las prioridades de procesamiento en función de los objetivos.

Job Scheduler es un programa por lotes que funciona como un demonio y se puede controlar mediante una interfaz gráfica de usuario. Job Scheduler utiliza una configuración XML para los programas programados, los scripts y el tiempo y la frecuencia del procesamiento de tareas. Hay una API disponible que le da control de eventos y registro a sus trabajos.

JDRing es una biblioteca liviana de programación de Java que es simple y pequeña, pero que aún admite alarmas de llamada a intervalos especificados, como eventos únicos o en cronogramas complejos con control total tipo cron.

jBatchEngine es una cola de trabajos por lotes escrita en Java. En contraste con los programadores impulsados ​​por el tiempo como Cron, jBatchEngine es impulsado por eventos.

MyBatchFramework es un marco liviano de código abierto diseñado para crear programas por lotes fácilmente robustos y manejables en el lenguaje Java.

Super with SuperScheduler and SuperWatchdog es un programador de tareas Java con una rica GUI para todas las aplicaciones. Es plataforma neutral. Especialmente bueno para ser un programador de trabajos para Linux y Solaris. Proporciona un súper conjunto de funcionalidades del Programador de Microsoft Windows. Proporciona una programación activada por eventos. Puede programar tareas en un entorno distribuido. Una tarea se ejecutará una sola vez entre todas las máquinas de la red. Todas las tareas son festivas ajustables. Incluso cada trabajo es un trabajo de ESPERA, la historia será un buen rastro para tareas importantes. Es compatible con la internacionalización.

fuente: Open Source Job Schedulers in Java

4

Mire en TimerTask y Timer: ambos están en esa versión del JDK.

Timer : 
public void schedule(TimerTask task, Date firstTime, long period) 
public void scheduleAtFixedRate(TimerTask task, Date firstTime, long period) 

Configúrelo para ejecutar la primera fecha que desee y la cantidad de milisegundos en un día como demora.

3

¿Es posible que utilice una biblioteca como cron4j? Hará su trabajo mucho más fácil!

+0

Esto parece como una posibilidad, dependiendo de si esta biblioteca se le permitirá que se utilizará –

+0

Secundo esta sugerencia - cron4j es una delicia, y funciona como un encanto, es mucho más simple que cuarzo (que también funciona, es bastante grande y a menudo más de lo que realmente necesita, y tiene algunos dobleces para casos de uso más simples) – StaxMan

1

usted tiene que utilizar Quartz

nunca he saber quién lanza de cuarzo en primer lugar sin embargo.

Si tiene un servidor de aplicaciones o artefactos similares, puede configurar el trabajo de Quartz allí y hacer que ejecute su tarea en el momento dado.

+3

El cuarzo tiene muchas características sofisticadas, por lo que si sus requisitos son elaborados, puede ser una buena opción . Pero si tienes un simple "dispara esto a las 5:00 todos los días", usaría Timer. – Jay

2
  • Java Timers puede ejecutar un trabajo arbitrario en intervalos, tiempos preestablecidos, etc.etc.
  • Quartz biblioteca
  • Si realmente quiere ser escueto al respecto, envuélvalo en un script de shell y colóquelo en cron.
0

Tal vez, ese post reciente le ayuda a:

Will this pause my Java thread for a minute?

Mi respuesta a esa pregunta es utilizar un Java incorporado de aplicación basado en clases y java.util.Time java.util.TimerTask: Will this pause my Java thread for a minute?

O bien, puede utilizar el servicio crontab para plataformas * nix (disponible también para plataformas Windows). Ese es el estilo más simple y liviano para ejecutar un trabajo independiente periódicamente.

[] 's,

y último

+0

crontab rápido cómo a: http://www.crontabrocks.org/ [] 's, y pasado – apast