En los antecedentes de la aplicación de las herramientas de desarrollo y prueba, a menudo escucho a los colegas dicen que necesitan hacer una tarea cronometrada para procesar registros o limpieza de datos, incluida la lógica compleja de cálculo comercial. Al elegir una tarea cronometrada, ¿cómo pueden implementarla rápidamente y elegir un método más adecuado para usted? He recopilado y organizado algunos métodos para implementar tareas programadas aquí. Espero que pueda ayudar a los estudiantes que recién comienzan a hacer tareas programadas. Corrija cualquier escritura incorrecta.
Hay tres formas de resumir las tareas de tiempo básico de Java:
1.1 Crear un hilo y luego dejarlo funcionar en el bucle While, y lograr el efecto de la tarea de tiempo a través del método de sueño;
1.2 El uso del temporizador y TimerTask tiene los siguientes beneficios en comparación con el primer método:
1.3 El ProgramedExecutorService se introduce como una clase de herramientas concurrentes de java.util.concurrent. Este es el método ideal de implementación de tareas cronometradas. En comparación con los dos métodos anteriores, tiene los siguientes beneficios:
Hay tres formas de resumir las tareas cronometradas de primavera:
2.1 ProgramedTimerTask: ProchuledtimerTask de Spring define el ciclo de ejecución de una tarea de temporizador. Desafortunadamente, puede especificar la frecuencia de la ejecución de la tarea, pero no puede especificar exactamente cuándo se ejecuta, lo que requiere el uso del segundo cuarzo para la programación de tareas;
Crear una tarea comercial, declarada en el archivo de configuración de Spring;
En el archivo de configuración de Spring, configure ProchulEdtimerTask y asocie la instancia de tarea personalizada;
Inicie el temporizador, el TimerFactoryBean de Spring es responsable de comenzar la tarea de tiempo
2.2 Uso de cuarzo:
En primer lugar, defina las tareas lógicas comerciales como de costumbre:
Declarar y configurar el método de activación de programación de trabajo en primavera
Aquí, hay dos tipos de desencadenantes de trabajo para cuarzo, a saber
org.springframework.scheduling.quartz.simpletriggerbean
org.springframework.scheduling.quartz.crontriggerbean
El primer SimpleTriggerBean solo admite tareas de llamadas a cierta frecuencia, como ejecutar una vez de vez en cuando.
<bean id="simpleTrigger"> <property name="jobDetail" ref="myJob" /> <property name="startDelay" value="0" /><!-- After the dispatch factory is instantiated, the dispatching starts after 0 seconds--> <property name="repeatInterval" value="2000" /><!-- Scheduled every 2 seconds--> </bean>
El segundo tipo de CronTriggerBean admite que se ejecuta una vez en un momento específico, como ejecutar una vez a las 12:00 todos los días, como se configuró anteriormente;
Configurar la fábrica de despacho
org.springframework.scheduling.quartz.schedulerFactoryBean, el código es el anterior;
Simplemente inicie su aplicación
2.3 Uso de la tarea de primavera
La propia herramienta de tarea cronometrada de Spring, Spring Task, puede compararla con un cuarzo liviano, y es muy simple de usar. No requiere paquetes adicionales, excepto los paquetes relacionados con la primavera, y admite dos tipos de anotaciones y archivos de configuración:
Paso 1: Escribe la clase de tareas; TaskJob, Method Job1: el segundo paso de la omisión del código: Agregar espacio de nombres y descripción en el encabezado del archivo de configuración de Spring
<Beans xmlns = "http://www.springframework.org/schema/beans" xmlns: tarea = "http://www.springframework.org/schema/Task" xsi: schemalocation http://www.springframework.org/schema/task/spring-task-3.0.xsd ">
Paso 3: Establezca tareas específicas en el archivo de configuración de Spring
<tarea: programado-tasks> <tarea: programado ref = "taskjob" métode = "Job1" Cron = "0 * * * * *?"/> </tarea: Tasks programado> <context: componente-scan base-pankage = "com.alibaba.mytask"/>>>
Descripción: El parámetro REF especifica la clase de tareas, el método especifica el método que debe ejecutarse, las expresiones cron y cronexpression, el método de escritura específico no se introducirá aquí, y el <contexto: componente-escane-scan-package = "com.alibaba.mytask" /> se utiliza la anotación de escaneo de primavera.
Lo anterior se trata de este artículo, espero que sea útil para el aprendizaje de todos.