Pregunta

buena gente. Estoy tratando de utilizar el cuarzo con la primavera en un proyecto muy simple administrado por maven.So en el módulo en el que la clase de trabajo es mycron Incluí una clase principal de Java a ella sólo para ver la salida del trabajo un poco de texto y la nueva fecha. aquí está mi configuración de primavera:

<!--Scheduling-->
<!--Job-->
    <bean id="projUpdater" class="org.springframework.scheduling.quartz.JobDetailBean">
        <property name="jobClass" value="com.myproject.utilscheduling.quartz.ProjUpdaterCronImpl" />
    </bean>
<!---End of Jobs-->
<!--Triggers-->
    <bean id="regularUpdateTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
        <property name="jobDetail" ref="projUpdater"/>
        <property name="cronExpression" value="30 1 * * * ?"/>
    </bean>
<!--End ofTriggers-->
<!--Scheduler Factory-->
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    <property name="triggers">
        <list>
            <ref bean="regularUpdateTrigger"/>
        </list>
    </property>
</bean>
<!--End of Scheduler Factory-->
<!--End of Scheduling-->

Y aquí está la clase de trabajo

public class ProjUpdaterCronImpl extends QuartzJobBean {

public ProjUpdaterCronImpl() {
}


protected void executeInternal (JobExecutionContext ctx) throws JobExecutionException {
    System.out.println("[JOB] " + new Date() + "hello");
}

}

aquí es la clase principal

public class NewMain {

/**
 * @param args the command line arguments
 */
 public static void main(String[] args) {
    System.out.println("starting job");
 }

}

Así que en mi entendimiento se iniciará el trabajo después de 1mn30s y publicado en el console.I'm wrong.i pareja o errores que puedo solucionar para que pueda asumir con seguridad que no hay error en el archivo de configuración en la primavera ya que se enfrentan no es la hora de construir y running.So lo hice mal o lo que se me olvidó hacer?

segunda preocupación ya que estoy obligándome a ir por el camino basado en pruebas ¿Cómo voy a probar una clase posiblemente el trabajo de cron? gracias por leer

¿Fue útil?

Solución

Su expresión cron

<property name="cronExpression" value="30 1 * * * ?"/>

En realidad configura el gatillo para disparar una vez cada hora en 1 minuto 30 segundos después de la hora.

sugerencia

de Zoidberg utilizar MethodInvokingJobDetailFactoryBean le permite codificar su tarea en el cron como POJO, por lo que es fácil de probar.

Otros consejos

Probar para su grano de trabajo.

<bean id="projUpdater" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <property name="targetObject" ref="registeredObject" />
        <property name="targetMethod" value="methodNameInObject" />
    </bean>

Cuando su registeredObject es un grano registrada en la configuración primavera en algún lugar. Y el método es un método que existe en ese objeto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top